***INCLUDE MV45AFZZ .
************************************************************************
* *
* This include is reserved for user modifications *
* *
* Forms for sales document processing *
* *
* The name of modification modules should begin with 'ZZ'. *
* *
************************************************************************
*---------------------------------------------------------------------*
* FORM ZZEXAMPLE *
*---------------------------------------------------------------------*
* text...................................... *
*---------------------------------------------------------------------*
*FORM ZZEXAMPLE.
* ...
*ENDFORM.
*eject
*---------------------------------------------------------------------*
* FORM USEREXIT_DELETE_DOCUMENT *
*---------------------------------------------------------------------*
* This userexit can be used to delete data in additional tables *
* when a sales document is deleted. *
* *
* This form is called in dialog at the end of form BELEG_LOESCHEN*
* just before form BELEG_SICHERN is performed to delete the *
* datas on the database. *
* *
*---------------------------------------------------------------------*
FORM USEREXIT_DELETE_DOCUMENT.
ENDFORM. "USEREXIT_DELETE_DOCUMENT
*eject
*---------------------------------------------------------------------*
* FORM USEREXIT_FIELD_MODIFICATION *
*---------------------------------------------------------------------*
* This userexit can be used to modify the attributes of *
* screen fields. *
* This form is processed for each field in the screen. *
* *
* The use of the fields screen-group1 to screen-group4 is: *
* *
* Screen-group1: Automatic modification contolles by transaction*
* MFAW. *
* Screen-group2: Contents 'LOO' for steploop-fields. *
* Screen-group3: Used for modififaction, which are dependent on *
* control tables or other fix information. *
* Screen-group4: Unused *
* *
* For field mofifications, which are dependent on the document *
* status, you can use the status field in the workareas *
* XVBAP for item status and XVBUK for header status. *
* *
* This form is called from module FELDAUSWAHL. *
* *
*---------------------------------------------------------------------*
FORM USEREXIT_FIELD_MODIFICATION.
DATA: ZSUBRC LIKE SY -SUBRC.
* CASE SCREEN-GROUP3.
* WHEN '900'.
* IF VBAK-VBTYP NE 'A'.
* SCREEN-ACTIVE = 0.
* ENDIF.
* ENDCASE.
AUTHORITY-CHECK OBJECT 'Z_SO_MONEY'
ID 'VKORG' FIELD VBAK -VKORG
ID 'VTWEG' FIELD VBAK -VTWEG
ID 'SPART' FIELD VBAK -SPART
ID 'AUART' FIELD VBAK -AUART
ID 'ACTVT' DUMMY.
ZSUBRC = SY -SUBRC.
IF ZSUBRC NE 0 AND ( SCREEN -NAME = 'VBAK-NETWR'
OR SCREEN -NAME = 'VBAK-WAERK'
OR SCREEN -NAME = 'VBAP-NETWR'
OR SCREEN -NAME = 'KOMV-KBETR'
OR SCREEN -NAME = 'RV45A-KOEIN'
OR SCREEN -NAME = 'VBAP-NETPR'
OR SCREEN -NAME = 'VBAP-NETWR'
OR SCREEN -NAME = 'VBAP-WAERK' ).
SCREEN -ACTIVE = 0.
ENDIF.
MODIFY SCREEN.
* CASE SCREEN-GROUP3.
* WHEN '900'.
* IF VBAK-VBTYP NE 'A'.
* SCREEN-ACTIVE = 0.
* ENDIF.
* ENDCASE.
* CASE SCREEN-NAME.
* WHEN 'VBAK-VBELN'.
* SCREEN-ACTIVE = 0.
* ENDCASE.
ENDFORM. "USEREXIT_FIELD_MODIFICATION
*eject
*---------------------------------------------------------------------*
* FORM USEREXIT_MOVE_FIELD_TO_VBAK *
*---------------------------------------------------------------------*
* This userexit can be used to move some fields into the sales *
* dokument header workaerea VBAK. *
* *
* SVBAK-TABIX = 0: Create header *
* SVBAK-TABIX > 0: Change header *
* *
* This form is called at the end of form VBAK_FUELLEN. *
* *
*---------------------------------------------------------------------*
FORM USEREXIT_MOVE_FIELD_TO_VBAK.
DATA: L_KTGRD LIKE VBKD -KTGRD,
L_PSTYV LIKE VBAP -PSTYV.
DATA: WA_VBKD LIKE XVBKD.
LOOP AT XVBKD INTO WA_VBKD.
L_KTGRD = WA_VBKD -KTGRD.
ENDLOOP.
LOOP AT XVBAP.
SELECT SINGLE PSTYV INTO L_PSTYV FROM ZTSD01
WHERE AUART = VBAK -AUART
AND KTGRD = L_KTGRD.
IF SY -SUBRC = 0.
XVBAP -PSTYV = L_PSTYV.
MODIFY XVBAP.
ENDIF.
ENDLOOP.
* vbak-zzfield = xxxx-zzfield2.
ENDFORM. "USEREXIT_MOVE_FIELD_TO_VBAK
*eject
*---------------------------------------------------------------------*
* FORM USEREXIT_MOVE_FIELD_TO_VBAP *
*---------------------------------------------------------------------*
* This userexit can be used to move some fields into the sales *
* dokument item workaerea VBAP *
* *
* SVBAP-TABIX = 0: Create item *
* SVBAP-TABIX > 0: Change item *
* *
* This form is called at the end of form VBAP_FUELLEN. *
* *
*---------------------------------------------------------------------*
FORM USEREXIT_MOVE_FIELD_TO_VBAP.
* VBAP-zzfield = xxxx-zzfield2.
*{ INSERT DEVK900046 1
***VA01增强 add by panxinyi 2012.2.17
DATA: L_KTGRD LIKE VBKD -KTGRD,
L_PSTYV LIKE VBAP -PSTYV.
DATA: WA_VBKD LIKE XVBKD.
LOOP AT XVBKD INTO WA_VBKD.
L_KTGRD = WA_VBKD -KTGRD.
ENDLOOP.
SELECT SINGLE PSTYV INTO L_PSTYV FROM ZTSD01
WHERE AUART = VBAK -AUART
AND KTGRD = L_KTGRD.
IF SY -SUBRC = 0.
VBAP -PSTYV = L_PSTYV.
ENDIF.
***VA01增强
*} INSERT
ENDFORM. "USEREXIT_MOVE_FIELD_TO_VBAP
*eject
*---------------------------------------------------------------------*
* FORM USEREXIT_MOVE_FIELD_TO_VBEP *
*---------------------------------------------------------------------*
* This userexit can be used to move some fields into the sales *
* dokument schedule line workaerea VBEP *
* *
* SVBEP-TABIX = 0: Create schedule line *
* SVBEP-TABIX > 0: Change schedule line *
* *
* This form is called at the end of form VBEP_FUELLEN. *
* *
*---------------------------------------------------------------------*
FORM USEREXIT_MOVE_FIELD_TO_VBEP.
* VBEP-zzfield = xxxx-zzfield2.
ENDFORM. "USEREXIT_MOVE_FIELD_TO_VBEP
*eject
*---------------------------------------------------------------------*
* FORM USEREXIT_MOVE_FIELD_TO_VBKD *
*---------------------------------------------------------------------*
* This userexit can be used to move some fields into the sales *
* dokument business data workaerea VBKD *
* *
* SVBKD-TABIX = 0: Create data *
* SVBKD-TABIX > 0: Change data *
* *
* This form is called at the end of form VBKD_FUELLEN. *
* *
*---------------------------------------------------------------------*
FORM USEREXIT_MOVE_FIELD_TO_VBKD.
* VBKD-zzfield = xxxx-zzfield2.
ENDFORM. "USEREXIT_MOVE_FIELD_TO_VBKD
*eject
*---------------------------------------------------------------------*
* FORM USEREXIT_NUMBER_RANGE *
*---------------------------------------------------------------------*
* This userexit can be used to determine the numberranges for *
* the internal document number. *
* *
* US_RANGE_INTERN - internal number range *
* *
* This form is called from form BELEG_SICHERN *
* *
*---------------------------------------------------------------------*
FORM USEREXIT_NUMBER_RANGE USING US_RANGE_INTERN.
* Example: Numer range from TVAK like in standard
* US_RANGE_INTERN = TVAK-NUMKI.
* interne Nummernvergabe
DATA: DA_RC LIKE INRI -RETURNCODE.
CALL FUNCTION 'NUMBER_GET_NEXT'
EXPORTING
NR_RANGE_NR = US_RANGE_INTERN
OBJECT = 'RV_BELEG'
IMPORTING
RETURNCODE = DA_RC
NUMBER = VBAK -VBELN.
CASE DA_RC.
WHEN '1'.
MESSAGE I532 WITH US_RANGE_INTERN 'RV_BELEG'.
WHEN '2'.
MESSAGE I533 WITH US_RANGE_INTERN 'RV_BELEG'.
ENDCASE.
**更改销售订单编码规则 2012.03.06
DATA:L_NUMBE LIKE ZTSD04 -NUMBE.
DATA:L_VBELN LIKE VBAK -VBELN.
DATA:L_VBELN1 LIKE VBAK -VBELN.
DATA:L_VBELN2 LIKE VBAK -VBELN.
DATA: INTERVAL LIKE NRIV.
SELECT SINGLE NUMBE INTO L_NUMBE FROM ZTSD04
WHERE VKORG = VBAK -VKORG.
IF L_NUMBE IS INITIAL.
MESSAGE '该销售组织未维护号码段,请联系管理员' TYPE 'E'.
EXIT.
ENDIF.
CALL FUNCTION 'NUMBER_GET_INFO'
EXPORTING
NR_RANGE_NR = US_RANGE_INTERN
OBJECT = 'RV_BELEG'
IMPORTING
INTERVAL = INTERVAL.
L_VBELN1 = INTERVAL -FROMNUMBER+2 ( 8 ).
CONCATENATE L_NUMBE L_VBELN1 INTO L_VBELN1.
CONDENSE L_VBELN1 NO -GAPS.
L_VBELN2 = INTERVAL -TONUMBER+2 ( 8 ).
CONCATENATE L_NUMBE L_VBELN2 INTO L_VBELN2.
CONDENSE L_VBELN2 NO -GAPS.
SELECT MAX ( VBELN ) INTO L_VBELN FROM VBAK
WHERE VBELN > L_VBELN1
AND VBELN < L_VBELN2.
IF L_VBELN IS INITIAL.
* vbak-vbeln = vbak-vbeln+2(8).
* CONCATENATE l_numbe vbak-vbeln INTO vbak-vbeln.
VBAK -VBELN = L_VBELN1 + 1.
CONDENSE VBAK -VBELN NO -GAPS.
ELSE.
L_VBELN = L_VBELN + 1.
IF L_VBELN+2 ( 8 ) > INTERVAL -TONUMBER+2 ( 8 ).
MESSAGE '该销售组织号码段已用完,请联系管理员' TYPE 'E'.
EXIT.
ELSE.
VBAK -VBELN = L_VBELN.
ENDIF.
ENDIF.
***
ENDFORM. "USEREXIT_NUMBER_RANGE
*eject
*---------------------------------------------------------------------*
* FORM USEREXIT_PRICING_PREPARE_TKOMK *
*---------------------------------------------------------------------*
* This userexit can be used to move additional fields into the *
* communication table which is used for pricing: *
* *
* TKOMK for header fields *
* *
* This form is called from form PREISFINDUNG_VORBEREITEN. *
* *
*---------------------------------------------------------------------*
FORM USEREXIT_PRICING_PREPARE_TKOMK.
* TKOMK-zzfield = xxxx-zzfield2.
ENDFORM. "USEREXIT_PRICING_PREPARE_TKOMK
*eject
*---------------------------------------------------------------------*
* FORM USEREXIT_PRICING_PREPARE_TKOMP *
*---------------------------------------------------------------------*
* This userexit can be used to move additional fields into the *
* communication table which is used for pricing: *
* *
* TKOMP for item fields *
* *
* This form is called from form PREISFINDUNG_VORBEREITEN. *
* *
*---------------------------------------------------------------------*
FORM USEREXIT_PRICING_PREPARE_TKOMP.
* TKOMP-zzfield = xxxx-zzfield2.
ENDFORM. "USEREXIT_PRICING_PREPARE_TKOMP
*eject
*---------------------------------------------------------------------*
* FORM USEREXIT_READ_DOCUMENT *
*---------------------------------------------------------------------*
* This userexit can be used to read data in additional tables *
* when the program reads a sales document. *
* *
* This form is called at the end of form BELEG_LESEN. *
* *
*---------------------------------------------------------------------*
FORM USEREXIT_READ_DOCUMENT.
ENDFORM. "USEREXIT_READ_DOCUMENT
*eject
*---------------------------------------------------------------------*
* FORM USEREXIT_SAVE_DOCUMENT *
*---------------------------------------------------------------------*
* This userexit can be used to save data in additional tables *
* when a document is saved. *
* *
* If field T180-TRTYP contents 'H', the document will be *
* created, else it will be changed. *
* *
* This form is called at from form BELEG_SICHERN, before COMMIT *
* *
*---------------------------------------------------------------------*
FORM USEREXIT_SAVE_DOCUMENT.
* Example:
* CALL FUNCTION 'ZZ_EXAMPLE'
* IN UPDATE TASK
* EXPORTING
* ZZTAB = ZZTAB.
ENDFORM. "USEREXIT_SAVE_DOCUMENT
*eject
*---------------------------------------------------------------------*
* FORM USEREXIT_SAVE_DOCUMENT_PREPARE *
*---------------------------------------------------------------------*
* This userexit can be used for changes or checks, before a *
* document is saved. *
* *
* If field T180-TRTYP contents 'H', the document will be *
* created, else it will be changed. *
* *
* This form is called at the beginning of form BELEG_SICHERN *
* *
*---------------------------------------------------------------------*
FORM USEREXIT_SAVE_DOCUMENT_PREPARE.
ENDFORM. "USEREXIT_SAVE_DOCUMENT_PREPARE
*eject
************************************************************************
* *
* This include is reserved for user modifications *
* *
* Forms for sales document processing *
* *
* The name of modification modules should begin with 'ZZ'. *
* *
************************************************************************
*---------------------------------------------------------------------*
* FORM ZZEXAMPLE *
*---------------------------------------------------------------------*
* text...................................... *
*---------------------------------------------------------------------*
*FORM ZZEXAMPLE.
* ...
*ENDFORM.
*eject
*---------------------------------------------------------------------*
* FORM USEREXIT_DELETE_DOCUMENT *
*---------------------------------------------------------------------*
* This userexit can be used to delete data in additional tables *
* when a sales document is deleted. *
* *
* This form is called in dialog at the end of form BELEG_LOESCHEN*
* just before form BELEG_SICHERN is performed to delete the *
* datas on the database. *
* *
*---------------------------------------------------------------------*
FORM USEREXIT_DELETE_DOCUMENT.
ENDFORM. "USEREXIT_DELETE_DOCUMENT
*eject
*---------------------------------------------------------------------*
* FORM USEREXIT_FIELD_MODIFICATION *
*---------------------------------------------------------------------*
* This userexit can be used to modify the attributes of *
* screen fields. *
* This form is processed for each field in the screen. *
* *
* The use of the fields screen-group1 to screen-group4 is: *
* *
* Screen-group1: Automatic modification contolles by transaction*
* MFAW. *
* Screen-group2: Contents 'LOO' for steploop-fields. *
* Screen-group3: Used for modififaction, which are dependent on *
* control tables or other fix information. *
* Screen-group4: Unused *
* *
* For field mofifications, which are dependent on the document *
* status, you can use the status field in the workareas *
* XVBAP for item status and XVBUK for header status. *
* *
* This form is called from module FELDAUSWAHL. *
* *
*---------------------------------------------------------------------*
FORM USEREXIT_FIELD_MODIFICATION.
DATA: ZSUBRC LIKE SY -SUBRC.
* CASE SCREEN-GROUP3.
* WHEN '900'.
* IF VBAK-VBTYP NE 'A'.
* SCREEN-ACTIVE = 0.
* ENDIF.
* ENDCASE.
AUTHORITY-CHECK OBJECT 'Z_SO_MONEY'
ID 'VKORG' FIELD VBAK -VKORG
ID 'VTWEG' FIELD VBAK -VTWEG
ID 'SPART' FIELD VBAK -SPART
ID 'AUART' FIELD VBAK -AUART
ID 'ACTVT' DUMMY.
ZSUBRC = SY -SUBRC.
IF ZSUBRC NE 0 AND ( SCREEN -NAME = 'VBAK-NETWR'
OR SCREEN -NAME = 'VBAK-WAERK'
OR SCREEN -NAME = 'VBAP-NETWR'
OR SCREEN -NAME = 'KOMV-KBETR'
OR SCREEN -NAME = 'RV45A-KOEIN'
OR SCREEN -NAME = 'VBAP-NETPR'
OR SCREEN -NAME = 'VBAP-NETWR'
OR SCREEN -NAME = 'VBAP-WAERK' ).
SCREEN -ACTIVE = 0.
ENDIF.
MODIFY SCREEN.
* CASE SCREEN-GROUP3.
* WHEN '900'.
* IF VBAK-VBTYP NE 'A'.
* SCREEN-ACTIVE = 0.
* ENDIF.
* ENDCASE.
* CASE SCREEN-NAME.
* WHEN 'VBAK-VBELN'.
* SCREEN-ACTIVE = 0.
* ENDCASE.
ENDFORM. "USEREXIT_FIELD_MODIFICATION
*eject
*---------------------------------------------------------------------*
* FORM USEREXIT_MOVE_FIELD_TO_VBAK *
*---------------------------------------------------------------------*
* This userexit can be used to move some fields into the sales *
* dokument header workaerea VBAK. *
* *
* SVBAK-TABIX = 0: Create header *
* SVBAK-TABIX > 0: Change header *
* *
* This form is called at the end of form VBAK_FUELLEN. *
* *
*---------------------------------------------------------------------*
FORM USEREXIT_MOVE_FIELD_TO_VBAK.
DATA: L_KTGRD LIKE VBKD -KTGRD,
L_PSTYV LIKE VBAP -PSTYV.
DATA: WA_VBKD LIKE XVBKD.
LOOP AT XVBKD INTO WA_VBKD.
L_KTGRD = WA_VBKD -KTGRD.
ENDLOOP.
LOOP AT XVBAP.
SELECT SINGLE PSTYV INTO L_PSTYV FROM ZTSD01
WHERE AUART = VBAK -AUART
AND KTGRD = L_KTGRD.
IF SY -SUBRC = 0.
XVBAP -PSTYV = L_PSTYV.
MODIFY XVBAP.
ENDIF.
ENDLOOP.
* vbak-zzfield = xxxx-zzfield2.
ENDFORM. "USEREXIT_MOVE_FIELD_TO_VBAK
*eject
*---------------------------------------------------------------------*
* FORM USEREXIT_MOVE_FIELD_TO_VBAP *
*---------------------------------------------------------------------*
* This userexit can be used to move some fields into the sales *
* dokument item workaerea VBAP *
* *
* SVBAP-TABIX = 0: Create item *
* SVBAP-TABIX > 0: Change item *
* *
* This form is called at the end of form VBAP_FUELLEN. *
* *
*---------------------------------------------------------------------*
FORM USEREXIT_MOVE_FIELD_TO_VBAP.
* VBAP-zzfield = xxxx-zzfield2.
*{ INSERT DEVK900046 1
***VA01增强 add by panxinyi 2012.2.17
DATA: L_KTGRD LIKE VBKD -KTGRD,
L_PSTYV LIKE VBAP -PSTYV.
DATA: WA_VBKD LIKE XVBKD.
LOOP AT XVBKD INTO WA_VBKD.
L_KTGRD = WA_VBKD -KTGRD.
ENDLOOP.
SELECT SINGLE PSTYV INTO L_PSTYV FROM ZTSD01
WHERE AUART = VBAK -AUART
AND KTGRD = L_KTGRD.
IF SY -SUBRC = 0.
VBAP -PSTYV = L_PSTYV.
ENDIF.
***VA01增强
*} INSERT
ENDFORM. "USEREXIT_MOVE_FIELD_TO_VBAP
*eject
*---------------------------------------------------------------------*
* FORM USEREXIT_MOVE_FIELD_TO_VBEP *
*---------------------------------------------------------------------*
* This userexit can be used to move some fields into the sales *
* dokument schedule line workaerea VBEP *
* *
* SVBEP-TABIX = 0: Create schedule line *
* SVBEP-TABIX > 0: Change schedule line *
* *
* This form is called at the end of form VBEP_FUELLEN. *
* *
*---------------------------------------------------------------------*
FORM USEREXIT_MOVE_FIELD_TO_VBEP.
* VBEP-zzfield = xxxx-zzfield2.
ENDFORM. "USEREXIT_MOVE_FIELD_TO_VBEP
*eject
*---------------------------------------------------------------------*
* FORM USEREXIT_MOVE_FIELD_TO_VBKD *
*---------------------------------------------------------------------*
* This userexit can be used to move some fields into the sales *
* dokument business data workaerea VBKD *
* *
* SVBKD-TABIX = 0: Create data *
* SVBKD-TABIX > 0: Change data *
* *
* This form is called at the end of form VBKD_FUELLEN. *
* *
*---------------------------------------------------------------------*
FORM USEREXIT_MOVE_FIELD_TO_VBKD.
* VBKD-zzfield = xxxx-zzfield2.
ENDFORM. "USEREXIT_MOVE_FIELD_TO_VBKD
*eject
*---------------------------------------------------------------------*
* FORM USEREXIT_NUMBER_RANGE *
*---------------------------------------------------------------------*
* This userexit can be used to determine the numberranges for *
* the internal document number. *
* *
* US_RANGE_INTERN - internal number range *
* *
* This form is called from form BELEG_SICHERN *
* *
*---------------------------------------------------------------------*
FORM USEREXIT_NUMBER_RANGE USING US_RANGE_INTERN.
* Example: Numer range from TVAK like in standard
* US_RANGE_INTERN = TVAK-NUMKI.
* interne Nummernvergabe
DATA: DA_RC LIKE INRI -RETURNCODE.
CALL FUNCTION 'NUMBER_GET_NEXT'
EXPORTING
NR_RANGE_NR = US_RANGE_INTERN
OBJECT = 'RV_BELEG'
IMPORTING
RETURNCODE = DA_RC
NUMBER = VBAK -VBELN.
CASE DA_RC.
WHEN '1'.
MESSAGE I532 WITH US_RANGE_INTERN 'RV_BELEG'.
WHEN '2'.
MESSAGE I533 WITH US_RANGE_INTERN 'RV_BELEG'.
ENDCASE.
**更改销售订单编码规则 2012.03.06
DATA:L_NUMBE LIKE ZTSD04 -NUMBE.
DATA:L_VBELN LIKE VBAK -VBELN.
DATA:L_VBELN1 LIKE VBAK -VBELN.
DATA:L_VBELN2 LIKE VBAK -VBELN.
DATA: INTERVAL LIKE NRIV.
SELECT SINGLE NUMBE INTO L_NUMBE FROM ZTSD04
WHERE VKORG = VBAK -VKORG.
IF L_NUMBE IS INITIAL.
MESSAGE '该销售组织未维护号码段,请联系管理员' TYPE 'E'.
EXIT.
ENDIF.
CALL FUNCTION 'NUMBER_GET_INFO'
EXPORTING
NR_RANGE_NR = US_RANGE_INTERN
OBJECT = 'RV_BELEG'
IMPORTING
INTERVAL = INTERVAL.
L_VBELN1 = INTERVAL -FROMNUMBER+2 ( 8 ).
CONCATENATE L_NUMBE L_VBELN1 INTO L_VBELN1.
CONDENSE L_VBELN1 NO -GAPS.
L_VBELN2 = INTERVAL -TONUMBER+2 ( 8 ).
CONCATENATE L_NUMBE L_VBELN2 INTO L_VBELN2.
CONDENSE L_VBELN2 NO -GAPS.
SELECT MAX ( VBELN ) INTO L_VBELN FROM VBAK
WHERE VBELN > L_VBELN1
AND VBELN < L_VBELN2.
IF L_VBELN IS INITIAL.
* vbak-vbeln = vbak-vbeln+2(8).
* CONCATENATE l_numbe vbak-vbeln INTO vbak-vbeln.
VBAK -VBELN = L_VBELN1 + 1.
CONDENSE VBAK -VBELN NO -GAPS.
ELSE.
L_VBELN = L_VBELN + 1.
IF L_VBELN+2 ( 8 ) > INTERVAL -TONUMBER+2 ( 8 ).
MESSAGE '该销售组织号码段已用完,请联系管理员' TYPE 'E'.
EXIT.
ELSE.
VBAK -VBELN = L_VBELN.
ENDIF.
ENDIF.
***
ENDFORM. "USEREXIT_NUMBER_RANGE
*eject
*---------------------------------------------------------------------*
* FORM USEREXIT_PRICING_PREPARE_TKOMK *
*---------------------------------------------------------------------*
* This userexit can be used to move additional fields into the *
* communication table which is used for pricing: *
* *
* TKOMK for header fields *
* *
* This form is called from form PREISFINDUNG_VORBEREITEN. *
* *
*---------------------------------------------------------------------*
FORM USEREXIT_PRICING_PREPARE_TKOMK.
* TKOMK-zzfield = xxxx-zzfield2.
ENDFORM. "USEREXIT_PRICING_PREPARE_TKOMK
*eject
*---------------------------------------------------------------------*
* FORM USEREXIT_PRICING_PREPARE_TKOMP *
*---------------------------------------------------------------------*
* This userexit can be used to move additional fields into the *
* communication table which is used for pricing: *
* *
* TKOMP for item fields *
* *
* This form is called from form PREISFINDUNG_VORBEREITEN. *
* *
*---------------------------------------------------------------------*
FORM USEREXIT_PRICING_PREPARE_TKOMP.
* TKOMP-zzfield = xxxx-zzfield2.
ENDFORM. "USEREXIT_PRICING_PREPARE_TKOMP
*eject
*---------------------------------------------------------------------*
* FORM USEREXIT_READ_DOCUMENT *
*---------------------------------------------------------------------*
* This userexit can be used to read data in additional tables *
* when the program reads a sales document. *
* *
* This form is called at the end of form BELEG_LESEN. *
* *
*---------------------------------------------------------------------*
FORM USEREXIT_READ_DOCUMENT.
ENDFORM. "USEREXIT_READ_DOCUMENT
*eject
*---------------------------------------------------------------------*
* FORM USEREXIT_SAVE_DOCUMENT *
*---------------------------------------------------------------------*
* This userexit can be used to save data in additional tables *
* when a document is saved. *
* *
* If field T180-TRTYP contents 'H', the document will be *
* created, else it will be changed. *
* *
* This form is called at from form BELEG_SICHERN, before COMMIT *
* *
*---------------------------------------------------------------------*
FORM USEREXIT_SAVE_DOCUMENT.
* Example:
* CALL FUNCTION 'ZZ_EXAMPLE'
* IN UPDATE TASK
* EXPORTING
* ZZTAB = ZZTAB.
ENDFORM. "USEREXIT_SAVE_DOCUMENT
*eject
*---------------------------------------------------------------------*
* FORM USEREXIT_SAVE_DOCUMENT_PREPARE *
*---------------------------------------------------------------------*
* This userexit can be used for changes or checks, before a *
* document is saved. *
* *
* If field T180-TRTYP contents 'H', the document will be *
* created, else it will be changed. *
* *
* This form is called at the beginning of form BELEG_SICHERN *
* *
*---------------------------------------------------------------------*
FORM USEREXIT_SAVE_DOCUMENT_PREPARE.
ENDFORM. "USEREXIT_SAVE_DOCUMENT_PREPARE
*eject