如何禁用BI Publisher中ETEXT自动输出的参数?
解决DELIMITER_BASED模板自动输出未定义参数的问题
问题原因
使用DELIMITER_BASED模板生成CSV时,根节点DATA_DS下的P_DATE_FROM、P_DATE、P_BU等未在模板中显式定义的字段自动输出,是因为该模板默认会遍历当前层级下的所有子元素,若未指定处理规则,会自动将这些元素转为CSV列输出。
解决方案
在EDI模板的根节点DATA_DS层级中,显式添加抑制指令,忽略不需要输出的参数,具体修改如下:
修改后的完整EDI模板
Format Setup: Hint: Define formatting options… <TEMPLATE TYPE> DELIMITER_BASED <OUTPUT CHARACTER SET> iso-8859-1 <NEW RECORD CHARACTER> Carriage Return Format Data Records : Hint: Define Data Layout <LEVEL> DATA_DS <MAXIMUM LENGTH> <FORMAT> <DATA> <COMMENTS> <!-- 显式抑制不需要输出的根节点参数 --> <SUPPRESS> P_DATE_FROM </SUPPRESS> <SUPPRESS> P_DATE </SUPPRESS> <SUPPRESS> P_BU </SUPPRESS> <LEVEL> G_1 <MAXIMUM LENGTH> <FORMAT> <DATA> <COMMENTS> <NEW RECORD> 15 Alpha ID REFERENCE NUMBER 1 Alpha ‘;’ 240 Alpha NAME NAME 1 Alpha ‘;’ 240 Alpha DOMAIN DOMAIN 1 Alpha ‘;’ 240 Number JOB_ROLE JOB_ROLE 1 Alpha ‘;’ 240 Alpha DESCRIPTION DESCRIPTION 1 Alpha ‘;’ 240 Alpha JOB_CODE JOB_CODE 1 Alpha ‘;’ 35 Alpha MIN_SALARY MIN_SALARY 1 Alpha ‘;’ 35 Alpha MAX_SALARY MAX_SALARY 1 Alpha ‘;’ 23 Alpha SALARY_CURRENCY SALARY_CURRENCY 1 Alpha ‘;’ 35 Alpha JOB_FAMILY JOB_FAMILY 1 Alpha ‘;’ 11 Alpha START_DATE START_DATE 1 Alpha ‘;’ 11 Alpha END_DATE END_DATE 1 Alpha ‘;’ 240 Alpha STATUS STATUS 1 Alpha ‘;’ 240 Alpha IS_CRITICAL IS_CRITICAL 1 Alpha ‘;’ 240 Alpha KEY_RESPONSIBILITIES KEY_RESPONSIBILITIES 1 Alpha ‘;’ 240 Alpha LOCALE LOCALE 1 Alpha ‘;’ 240 Alpha NEXT_CARR_STEP1 NEXT_CARR_STEP1 1 Alpha ‘;’ 240 Alpha NEXT_CARR_STEP2 NEXT_CARR_STEP2 1 Alpha ‘;’ 240 Alpha NEXT_CARR_STEP3 NEXT_CARR_STEP3 1 Alpha ‘;’ 240 Alpha NEXT_CARR_STEP4 NEXT_CARR_STEP4 1 Alpha ‘;’ 240 Alpha NEXT_CARR_STEP5 NEXT_CARR_STEP5 1 Alpha ‘;’ 240 Alpha JOB_ROLE1 JOB_ROLE1 1 Alpha ‘;’ 240 Alpha ROLE_IS_REQUIRED1 ROLE_IS_REQUIRED1 <END LEVEL> G_1 <END LEVEL> DATA_DS
关键修改点
在DATA_DS层级下添加<SUPPRESS>指令,逐个指定需要忽略的参数,模板就不会再自动输出这些未显式定义的字段。如果根节点下所有直接子元素都不需要输出,也可以使用<IGNORE ALL> YES </IGNORE ALL>替代多个<SUPPRESS>指令,一次性忽略所有根节点子元素。
内容的提问来源于stack exchange,提问作者abdulrahman Mohammed
相关产品推荐
相关产品推荐

