标签:LVBAP LFPLT VF04 VKDFS INITIAL ENDIF LVBAK SAP
场景:
SAP参考销售订单开票,在创建完销售订单后,SAP会生成开票索引VKDFS,也就是VF04看到的开票清单,本文讨论此时SAP生成开票索引的关键实现过程。
相关程序:
FORM INDEX_VKDFS_AUFBAUEN
销售订单更新VKDFS开票索引的条件
if ( lvbup-fksaa ca 'AB'
and auft_cust_index ne '0' )
or ( auft_cust_index eq '1' ).
写入索引表VKDFS动作: INSERT VKDFS FROM TABLE XVKDFS ACCEPTING DUPLICATE KEYS.
IF SY-SUBRC NE 0.
LOOP AT VKDFSTAB WHERE VBELN NE SPACE.
DELETE FROM VKDFS WHERE VBELN = VKDFSTAB-VBELN.
ENDLOOP.
INSERT VKDFS FROM TABLE SAVE_VKDFS ACCEPTING DUPLICATE KEYS.
EXIT.
ENDIF.
VKDFS赋值过程关键性代码摘抄:
CLEAR VKDFS. "HP_386396
VKDFS-MANDT = SY-MANDT.
VKDFS-FKTYP = 'A'.
IF LVBAK-KNUMA IS INITIAL.
VKDFS-FKTYP = 'A'.
ELSE.
VKDFS-FKTYP = 'B'.
ENDIF.
VKDFS-VKORG = LVBAK-VKORG.
VKDFS-FKDAT = LVBKD-FKDAT.
VKDFS-KUNNR = KUNNR_AG.
VKDFS-ADRNR = ADRNR_AG.
VKDFS-FKART = LVBAK-FKARA.
VKDFS-LLAND = LAND1_WE_POS.
VKDFS-VBELN = LVBAK-VBELN.
VKDFS-VBTYP = LVBAK-VBTYP.
VKDFS-FAKSK = LVBAK-FAKSK.VKDFS-VTWEG = LVBAK-VTWEG.
VKDFS-SPART = LVBAK-SPART.
VKDFS-VSTEL = GF_VSTEL.
IF LVBAP-KOWRR IS INITIAL.
VKDFS-NETWR = LVBAP-NETWR.
ENDIF.
VKDFS-WAERK = LVBAK-WAERK.
IF NOT LVBKD-FPLNR IS INITIAL AND
( LVBAP-FKREL EQ 'I' OR "n_573632
LVBAP-VBELN IS INITIAL ) AND "n_576805
LVBKD-FPLNR EQ LFPLT-FPLNR.
IF LVBAP-KOWRR IS INITIAL.
VKDFS-NETWR = LFPLT-FAKWR.
ENDIF.
VKDFS-FKDAT = LFPLT-AFDAT.
IF NOT LVBAP-FAKSP IS INITIAL.
VKDFS-FAKSK = LVBAP-FAKSP.
ENDIF.
IF NOT LFPLT-FAKSP IS INITIAL.
VKDFS-FAKSK = LFPLT-FAKSP.
ENDIF.
IF NOT LFPLT-FKARV IS INITIAL.
VKDFS-FKART = LFPLT-FKARV.
ENDIF.
ENDIF.
标签:LVBAP,LFPLT,VF04,VKDFS,INITIAL,ENDIF,LVBAK,SAP 来源: https://blog.csdn.net/shinehoneyr/article/details/122203670
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。