Sapscript跳过某些PO的文本元素

2020-08-25 11:19发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


嗨,

我正在尝试打印开票凭证,一个PO正确地打印了所有文本元素,但是另一个PO跳过了几个文本元素。我没有明白我要说的重点。

这是紧急问题,请帮助

预先感谢

Deepa。

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


嗨,

我正在尝试打印开票凭证,一个PO正确地打印了所有文本元素,但是另一个PO跳过了几个文本元素。我没有明白我要说的重点。

这是紧急问题,请帮助

预先感谢

Deepa。

付费偷看设置
发送
7条回答
木偶小白
1楼-- · 2020-08-25 12:09

因此,当您阅读程序代码时,您会在tvbdpr-charg NE空间不存在的元素之前找到条件

。
           通话功能" WRITE_FORM"
             出口
               元素='ITEM_LINE_BATCH'
             例外情况
               其他= 1。
 

仅当填充TVBDR-CHARG时,才会显示ITEM_LINE_BATCH。

槿木_熙
2楼-- · 2020-08-25 12:03

FORM item_print。 数据:da_ganf(1)TYPE c,"用于计费更正的打印标志da_lanf(1)TYPE c。"用于计费更正的打印标志CALL FUNCTION'WRITE_FORM'"第一个标头EXPORTING元素='ITEM_HEADER'EXCEPTIONS OTHERS = 1。 subrc NE 0. PERFORM protocol_update。ENDIF。CALL FUNCTION'WRITE_FORM'"激活标题EXPORTING元素='ITEM_HEADER'type ='TOP'例外=1。如果sy-subrc NE 0. PERFORM protocol_update。 万一。 环视电视节目。 vbdpr = tvbdpr。 * Bei Fakturen,死于keine Anzahlungsanforderungen,而werden *死于Verrechnungspositionen nicht gedruckt IF(vbdkr-fktyp EQ'P')或(vbdkr-fktyp NE'P'和vbdpr-fareg NA'45')。 使用da_ganf da_lanf来执行item_billing_correction_header。 如果tvbdpr-uecha EQ vbdpr-posnr或tvbdpr-uecha是INITIAL。 执行get_item_prices。 执行get_item_characteristics。 CALL FUNCTION'CONTROL_FORM'EXPORTING命令='PROTECT'。 CALL FUNCTION'WRITE_FORM'EXPORTING元素='ITEM_LINE'。 如果tvbdpr-charg NE空间。 调用功能'WRITE_FORM'EXPORTING元素='ITEM_LINE_BATCH'EXCEPTIONS OTHERS =1。如果sy-subrc NE0。执行FORFORM protocol_update。 万一。 万一。 PERFORM item_price_print。 PERFORM item_characteristics_print。 PERFORM item_reference_billing。 CALL FUNCTION'CONTROL_FORM'EXPORTING命令='ENDPROTECT'。 PERFORM item_text_print。 进行不同的收货人。 PERFORM different_order_no。 进行different_delivery_no。 进行different_extern_no。 请执行different_purchase_order_no。 PERFORM different_reference_no。 其他。 如果不是tvbdpr-fkimg是初始的。 执行get_item_prices。 调用功能'WRITE_FORM'EXPORTING元素='ITEM_LINE_BATCH'EXCEPTIONS OTHERS =1。如果sy-subrc NE0。执行FORFORM protocol_update。 万一。 PERFORM item_price_print。 万一。 万一。 *如果不是VBDPR-PREFE是初始的。 *调用功能'WRITE_FORM'*导出* ELEMENT ='PREFERENCE_TEXT'* EXCEPTIONS *其他=1。*如果SY-SUBRC NE0。*执行PROTOCOL_UPDATE。 * 万一。 * 万一。 * ENHANCEMENT-POINT ITEM_PRINT_01 SPOTS ES_RVADIN01。 万一。 如果是vbdkr-fktyp NE'P'。 如果vbdpr-fareg CA'45'。 PERFORM get_downpayment_data。 万一。 万一。 结局。 CALL FUNCTION'WRITE_FORM'"停用报头EXPORTING元素='ITEM_HEADER'功能='DELETE'类型='TOP'例外其他情况= 1. IF sy-subrc NE0。PERFORM protocol_update。ENDIF。ENDFORM。" ITEM_PRINT

# p#

我有一个成功案例PO" 47600358"。脚本执行所有文本元素

1./E ITEM_LINE

2./E ITEM_TEXT

3./E ITEM_LINE_BATCH

4./E ITEM_LINE_PRICE_QUANTITY

.......

8./E ITEM_SUM

对于失败案例PO" 46996011"。脚本会跳过文本元素。

1./E ITEM_LINE

2./E ITEM_TEXT

3./E ITEM_SUM

对于许多订单项,这些PO像循环一样执行。 1./E ITEM_LINE 2./E ITEM_TEXT 3./E ITEM_LINE_BATCH 4./E ITEM_LINE_PRICE_QUANTITY ...它将再次进入同一循环。 完成所有订单项后,将输入文本元素/E ITEM_SUM。

成功案例处理如上所述。

但针对失败情况。 在循环1./E ITEM_LINE 2./E ITEM_TEXT ..中,它仅执行这两个文本元素。.在完成所有订单项后,它将直接用于文本元素/E ITEM_SUM。

因此在失败情况下/E ITEM_LINE_BATCH和/E ITEM_LINE_PRICE_QUANTITY的内容丢失。

这是我的问题。

请帮助。

此致

Deepa

天桥码农
3楼-- · 2020-08-25 12:10

请使用CODE按钮设置代码格式,以便以更加用户友好的格式(彩色)显示代码。

(这样 是正确显示的)

wang628962
4楼-- · 2020-08-25 12:18

是的,我已对其进行调试。 如果我将断点保留在ITEM_LINE中,则成功情况和失败情况都将进入调试器模式,但是如果我将断点保留在ITEM_LINE_PRICE_QUANTITY中,则成功情况将进入调试器,但失败情况不会进入调试器模式。

半个程序猿
5楼-- · 2020-08-25 12:12

作为参考,如果人们想在自己的S/4系统中进行尝试,我认为等效的标准打印程序为RVADIN01,表格为RVINVOICE01_GG(或其他任何具有近似名称的打印程序和表格)。

# p #
SAP砖家
6楼-- · 2020-08-25 12:23

您能给我们您的打印程序(在文本文件中)吗?

一周热门 更多>