USEREXIT_MOVE_FIELD_TO_VBAK
Hi!!!
i need to use the userexit USEREXIT_MOVE_FIELD_TO_VBAK. from the include MV45AFZZ, i already have de code to modify this, but i don't now how to use it or introduce my code, someone can help me?
thanks & regards
Hi,
Use the modification assistant..
In the application tool bar user INSERT button ..
Thanks,
Naren
Similar Messages
-
Help in defaulting a value in a program
I have a program called MV45AZZA, and I got the following requirement
In MV45AFZZ we need to default VBAP-BWTAR = RH while new items are added in transaction VA01 and VA02, if sales org = 5090, order type = ZSBK and MBEW-BWTTY = 1 for the VBAP-MATNR. Once defaulted user should be able to change it to new value in VA01 and VA02, in that case system should not overwrite it with default value.
Sales order functionality needs to be changed to account for Sbank sales updating to repair profit center.
any help in coding is highly appreciated. i know little ABAP and I would appreciate if somebody can help in adding the code.Please highlight the code you added
Please check the Program below.
Thanks
SP
*TABLES: zue003, tvarv.
*DATA: werks LIKE vbap-werks.
Start of DEVK923935.
Global Definition
INCLUDE zsdi_mv45afzz_top.
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.
*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: zvbtyp LIKE vbfa-vbtyp_n,
zvbeln LIKE vbfa-vbeln.
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.
IF vbap-pstyv = 'IRLA'.
CHECK sy-tcode = 'VA01' OR sy-tcode = 'VA02'.
IF sy-tcode = 'VA01' OR sy-tcode = 'VA02'.
SELECT SINGLE vbtyp_n INTO zvbtyp FROM vbfa
WHERE vbelv = xvbap-vbeln AND posnv = vbap-posnr.
CHECK sy-subrc <> 0.
IF sy-subrc <> 0.
CASE screen-group2.
WHEN 'LOO'.
IF screen-name = 'VBAP-WERKS'.
screen-input = 1.
ENDIF.
ENDCASE.
ENDIF.
ENDIF.
ENDIF.
Make Reject Reason modifiable when document category is 'RETURNS'
06/10/02
Modified by Ak for check on subsequent credit memo
This opens up the field - reason for rejection - for change even after
the material has been received into the system on the returns delivery
but before the Returns Credit Memo has been issued.
Changed field to be modified from Reason for Rejection to Item
Category on the line item for which no credit to be given.
select single * from vbfa where vbelv = vbak-vbeln and
vbtyp_n = 'O'.
select a Returns Credit Memo document from VBFA that has NOT been
cancelled. if the selection is successful, credit has been issued and
the field should stay locked. however, if selection is unsuccessful
and since no credit has been issued, the field for item category
must be available for changing, if need be.
check: vbak-vbtyp = 'H'.
IF vbak-vbtyp = 'H'.
IF sy-tcode = 'VA01' OR sy-tcode = 'VA02'.
SELECT SINGLE vbrk~vbeln INTO zvbeln
FROM vbfa INNER JOIN vbrk ON vbfavbeln = vbrkvbeln
WHERE vbfavbelv = vbak-vbeln AND vbfaposnv = vbap-posnr
AND vbfavbtyp_n = 'O' AND vbrkfksto NE 'X'.
CHECK sy-subrc NE 0.
CASE screen-group2.
WHEN 'LOO'.
IF screen-name = 'VBAP-PSTYV'.
screen-input = 1.
ENDIF.
ENDCASE.
ENDIF.
ENDIF.
INCLUDE zue_sd_0029.
**If no invoice is created then make PSTYV ready for input for item
**category IRIN.
INCLUDE zue_sd_0031.
ENDFORM.
*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.
vbak-zzfield = xxxx-zzfield2.
**Ernesto EDIT for UE DEMO 10/16/2002
SELECT single * INTO TABLE i_tvarv FROM tvarv WHERE name =
*ZKS_KSEASORG'.
Start of DEVK923935.
Initialization Section
INCLUDE zsdi_mv45afzz_initialization.
End of DEVK923935.
**{ INSERT SNDK900075 1
Change user exit according to Online Documentation to
copy ship-to info to sale doc header (VBAK)
*CODE BELOW*REPLACED WITH zue_sd_0017***********
IF vbak-kvgr1 IS INITIAL AND
vbak-kvgr2 IS INITIAL AND
vbak-kvgr3 IS INITIAL AND
vbak-kvgr4 IS INITIAL AND
vbak-kvgr5 IS INITIAL.
SELECT SINGLE vkgrp vkbur kvgr1 kvgr2 kvgr3 kvgr4 kvgr5
FROM knvv INTO (vbak-vkgrp, vbak-vkbur, vbak-kvgr1, vbak-kvgr2,
vbak-kvgr3, vbak-kvgr4, vbak-kvgr5)
WHERE kunnr = kuwev-kunnr AND
vkorg = vbak-vkorg AND
vtweg = vbak-vtweg AND
spart = vbak-spart.
ENDIF.
*CODE ABOVE*REPLACED WITH zue_sd_0017***********
INCLUDE zue_sd_0017.
*CODE BELOW*REPLACED WITH zue_sd_0017***********
IF svbak-tabix = 0.
SELECT SINGLE vsbed FROM knvv INTO vbak-vsbed
*WHERE kunnr = kuwev-kunnr AND
vkorg = vbak-vkorg AND
vtweg = vbak-vtweg AND
spart = vbak-spart.
ENDIF.
*CODE ABOVE*REPLACED WITH zue_sd_0017***********
Start of DEVK915182
**Ernesto EDIT for UE DEMO 10/15/2002.
READ TABLE i_tvarv WITH KEY name = 'ZKS_KSEASORG'.
IF sy-subrc = 0.
IF vbak-vkorg = i_tvarv-low.
IF vbak-vkorg IN i_zsd01_vkorg.
IF sy-tcode EQ 'VA01'.
IF sy-dynnr EQ '4021'.
IF sy-ucomm NE 'SICH'.
l_pop_type = 'X'.
INCLUDE zue_sd_0027.
PERFORM partner_validation USING 'X'.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
end-of DEVK915182
Project : KSEA - Sales Force Expansion of 1st Jan 2003
Include for KSEA Sales Org 5010 only for PopUp Windows " 12/23/2002
INCLUDE zsd_salesforce_expnsn_hdr." Include 1 of 4
*/ Description : KSE Modification to remove the billing block for
*/ returns/credits/debits if sales Org is 5090.
*ORIGINAL CODE
*if vbak-vkorg = '5090' and vbak-vbtyp ca 'HKL'.
*vbak-faksk = ' '.
*endif.
IF sy-tcode = 'VA01'.
IF vbak-vkorg IN i_zsd09_vkorg.
IF vbak-vbtyp IN i_zsd09_vbtyp.
vbak-faksk = ' '.
ENDIF.
ENDIF.
ENDIF.
BREAK-POINT.
INCLUDE zue_sd_0039.
ENDFORM.
*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 SNDK900164 1
Item Category Determination
DATA: zzbukrs LIKE tvko-bukrs,
zzmtpos LIKE mvke-mtpos.
DATA: BEGIN OF zzwerks OCCURS 0,
werks LIKE marc-werks,
END OF zzwerks.
DATA: zdoccat LIKE tvak-vbklt,
zvmsta LIKE mvke-vmsta,
zspvbc LIKE tvms-spvbc,
zvmstb LIKE tvmst-vmstb.
DATA: z_xvbap LIKE xvbap,
yp1 LIKE t001k-bwkey,
z_uepos_bukrs LIKE t001k-bukrs.
IF i_zsd01_vkorg[] IS INITIAL.
If the initialization was not performed in the Fill VBAK,
reload data
INCLUDE zsdi_mv45afzz_initialization.
ENDIF.
SELECT SINGLE bukrs
INTO zzbukrs
FROM tvko
WHERE vkorg = vbak-vkorg.
SELECT w~werks
INTO TABLE zzwerks
FROM t001w AS w JOIN t001k AS k
ON wbwkey = kbwkey
WHERE k~bukrs = zzbukrs.
SELECT SINGLE mtpos INTO zzmtpos
FROM mvke
WHERE matnr = vbap-matnr
AND vkorg = vbak-vkorg
AND vtweg = vbak-vtweg.
Export Plant - inport in ZXQSMU07
EXPORT zz_plant = vbap-werks TO MEMORY ID 'ZZPLANT'. " KN05
check vbap-pstyv = 'TAN' or vbap-pstyv = 'TANN'.
removed the CHECK statement and replaced by IF-ENDIF.
inserted by arvind r kulkarni for TAN, TANN switching
IF vbap-pstyv = 'TAN' OR vbap-pstyv = 'TANN'
OR vbap-pstyv = 'REN' " KN02
OR vbap-pstyv = 'RENN' . " KN02
READ TABLE zzwerks WITH TABLE KEY werks = vbap-werks.
check sy-subrc ne 0.
IF sy-subrc NE 0.
IF vbap-pstyv = 'TAN'.
vbap-pstyv = 'ZAN'.
ELSEIF vbap-pstyv = 'REN'. " KN02
vbap-pstyv = 'YREN'. " KN02
ELSEIF vbap-pstyv = 'RENN'. " KN02
vbap-pstyv = 'YRNN'. " KN02
ELSEIF vbap-pstyv = 'TANN'.
vbap-pstyv = 'ZANN'.
ENDIF.
ENDIF.
ENDIF.
INCLUDE zue_sd_0014.
Begin insert for check for discontinued material in repair orders
LOGIC: For IRAT item categories, check if the material status field *
blank or populated. *
If populated, get the value of the D-Chain specific status *
and issue warning/error message with the associated text *
from config the D-Chain specific material status. *
Included YRAT to this logic (YRAT is free IRAT); 11/22/2002. *
IF vbap-pstyv = 'IRAT' OR vbap-pstyv = 'YRAT'.
CLEAR: zvmsta, zvmstb, zspvbc.
SELECT SINGLE vmsta INTO zvmsta FROM mvke WHERE
matnr = vbap-matnr AND vkorg = vbak-vkorg
AND vtweg = vbak-vtweg.
CHECK: NOT zvmsta IS INITIAL.
IF NOT zvmsta IS INITIAL.
SELECT SINGLE spvbc INTO zspvbc FROM tvms WHERE
vmsta = zvmsta.
SELECT SINGLE vmstb INTO zvmstb FROM tvmst WHERE
spras = sy-langu AND vmsta = zvmsta.
CASE zspvbc.
WHEN 'A'.
MESSAGE ID 'V1' TYPE 'W' NUMBER '028' WITH zvmsta zvmstb.
WHEN 'B'.
MESSAGE ID 'V1' TYPE 'E' NUMBER '028' WITH zvmsta zvmstb.
ENDCASE.
ENDIF.
ENDIF.
End insert for check for discontinued material in repair orders
INCLUDE zue_sd_0004.
INCLUDE zue_sd_0005.
end of DEVK923935.
****************END OF TEST SOURCE CODE******************
Begin Insert to assign material entered for TRADE material
Ak; 11/08/2002.
For trade material, the system will now mandate entry of higher level
item number and based on this, the system will bring in specialty,
material number (into material entered) and profit centre from this
higher level item into the line item for material TRADE.
Added MVGR2 & 3 to pass onto TRADE material; 11/12/2002 - Arvind.
Added material a/c assignment grp to trade-in material.
Added ZTRD item category to this logic. - Arvind 11/18/2002.
INCLUDE zzsdprc01.
INCLUDE zue_sd_0028.
End Insert to assign material entered for TRADE material
********************End of DIP Profile change************************
Get custom group data from MVKE (Sales Data for Material) by Material
when order type is 'RAS' (Repairs/Service)
and populate line item's Additional data A
INCLUDE zue_sd_0006.
INCLUDE zue_sd_0001.
include ZUE_SD_0032.
INCLUDE zue_sd_0002.
Get similar data (as above) from Servicable Material
INCLUDE zue_sd_0003.
*} INSERT
Determine Delivery Priority from SH Partner
11/02/2001
SELECT SINGLE lprio
FROM knvv
INTO vbap-lprio
WHERE kunnr = kuwev-kunnr AND
vkorg = vbak-vkorg AND
vtweg = vbak-vtweg AND
spart = vbak-spart.
Determine Delivery Priority for Order Type RAS
INCLUDE zsd_check_pstyv_werks.
To re-determine Matwa if the replacement item is changed afterwards
Niranjan 05/10/05 and ECLARKE
INCLUDE zue_sd_0021.
Mod for all sales organizations
Determination of Profit Center
06/24/03
INCLUDE zue_sd_0007.
End PRCTR Determination for KSI's document
KSI modification
Code to enter the actual part number of the item being repaired,
rather than "REPAIR"
09/18/02 GM
DATA: intercoflag TYPE c.
PERFORM zz_determine_cross_comp USING vbak-vkorg
vbap-werks
intercoflag.
IF intercoflag = 'Y'
AND
( vbap-pstyv = 'IRIN' OR vbap-pstyv = 'ZRIN' ).
SELECT SINGLE matwa INTO vbap-matwa FROM vbap
WHERE vbeln = vbap-vbeln AND posnr = vbap-uepos.
IF sy-subrc NE 0.
MESSAGE e006(z1) WITH vbap-uepos.
ENDIF.
ENDIF.
End material look up modification GM 9/17/02
KSI modification
DP90 Only:
Remove Billing Block from IRIN items and moved them to the header
10/06/02 CNG
11/18/2002 Tr-DEVK917363
Added Sales Orgs 5040 & 5060
KSI modification
06/10/2003 CNG CN01
If IRIN, clear billing block at item level
IF sy-tcode = 'DP90'.
IF vbap-werks = '7000' AND vbak-vkorg = '5010' AND" SM01-
vbap-pstyv = 'IRIN'." SM01-
IF vbap-werks = '7000' AND" SM01+
( vbak-vkorg IN i_zsd01_vkorg OR" SM01+
vbak-vkorg = '5040' OR" SM01+
Removed >>
vbak-vkorg = '5060' )" SM01+ CN01-
AND vbap-pstyv = 'IRIN'." SM01+ CN01-
vbak-faksk = '02'.
Removed <<
Inserted - check and block for line item IRIN only
vbak-vkorg = '5060' )." SM01+
vbak-faksk = '02'.
IF vbap-pstyv = 'IRIN'." CN01+
CLEAR vbap-faksp.
Inserted - check and block for line item IRIN only
ENDIF.
ENDIF.
ENDIF.
KSI modification
Routine to populate VBAP-ZZEDATU and VBAP-ZZVDATU on change and
creation of order
02/10/03 CNG
PERFORM check_custom_dates.
KSE Modification to create return item automatically**
Copied from Niranjan's routine tested in SND210 Date 04/05/03
INCLUDE zue_sd_0008.
User Exit for Service Processing - Clear Results
Analysis Key in sales order item for non-KSE service
items. DEVK927084 W. Miller 05/12/2003
Changed to validate by plant instead of sales org.
06/30/03 BEGIN>>>
if not vbak-vkorg = '5090' and vbap-bedae = 'SE'.
*Added 5000 for KSEM Prjct 02-09-2006 EC
IF NOT ( vbap-werks = '9000' OR vbap-werks = '5000' )
AND ( vbap-bedae = 'SE' OR VBAP-BEDAE = 'SERA' ).
06/30/03 END <<<<
CLEAR vbap-abgrs.
ENDIF.
End of DEVK924084
*/ Author : w/ Trimb.
*/ Date : 10/07/2003 ---> Repair No : DEVK930002
*/ Description : KSE Modification For plant 9000, to check the
*/ material is 'Non-R' for RAS order type
*/ and is 'R' for ZREX and ZWAR order types.
*Added lines below for - There is a user exit which exists that does
*not allow materials that do not begin with an "R" to be posted into
*plant 9000 if they are attached to a ZWAR order type. KSE/KSEA would
*like to modify this exit to allow materials with profit centers
*5090-03003 and 5090-04003 to be posted.
*ECLARKE/Niranjan 07-29-2004
*________________________n 07-29-2004__________________
DATA: flag_dexe.
TABLES: zzue027.
CLEAR: flag_dexe.
SELECT SINGLE werks auart prctr INTO (zzue027-werks, zzue027-auart,
zzue027-prctr) FROM zzue027 WHERE werks = vbap-werks AND auart =
vbak-auart AND prctr = vbap-prctr.
IF sy-subrc = 0.
flag_dexe = 'X'.
ENDIF.
*________________________ 07-29-2004__________________
IF flag_dexe IS INITIAL. " 07-29-2004
IF vbap-werks IN i_zsd09_werks.
IF ( vbak-auart IN i_zsd02_auart AND vbap-pstyv IN i_zsd04_pstyv AND
vbap-matwa(1) = 'R' ) OR ( vbak-auart IN i_zsd02_auart AND
vbap-pstyv IN i_zsd03_pstyv AND vbap-matnr(1) = 'R' ).
IF vbap-matwa(1) = 'R'.
MESSAGE e001(zkse) WITH vbap-matwa vbap-posnr vbak-auart
vbap-pstyv.
ENDIF.
IF vbap-matnr(1) = 'R'.
MESSAGE e001(zkse) WITH vbap-matnr vbap-posnr vbak-auart
vbap-pstyv.
ENDIF.
ELSEIF ( vbak-auart IN i_zsd03_auart AND vbap-pstyv IN
i_zsd04_pstyv AND vbap-matwa(1) <> 'R' ) OR ( vbak-auart IN
i_zsd03_auart AND vbap-pstyv IN i_zsd03_pstyv AND vbap-matnr(1) <> 'R' )
OR ( vbak-auart IN i_zsd04_auart AND vbap-pstyv IN i_zsd04_pstyv AND
vbap-matwa(1) <> 'R' ) OR ( vbak-auart IN i_zsd04_auart AND vbap-pstyv
IN i_zsd03_pstyv AND vbap-matnr(1) <> 'R' ).
IF vbap-matwa(1) <> 'R'.
MESSAGE e001(zkse) WITH vbap-matwa vbap-posnr vbak-auart
vbap-pstyv.
ENDIF.
IF vbap-matnr(1) <> 'R'.
MESSAGE e001(zkse) WITH vbap-matnr vbap-posnr vbak-auart
vbap-pstyv.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
INCLUDE zue_sd_0015.
include zue_sd_0019
Enhancement to populate Storage Location for sales order 5090
and plant 9000. But any companies can use it as long as entries are
maintained in table zsd_default_sloc
Niranjan 02/11/04
DEVK933987 - MV45AFZZ - MPitisci 4/12/2004
DEVK933989 - ZUE_SD_0019 include
DEVK933998 - ZSD_DEFAULT_SLOC table
INCLUDE zue_sd_0019.
To give hard error for D-CHin status 07 for items catgories other
than trade.
04/10/05
INCLUDE zue_sd_0034.
Checks if the storage location value is changed and checks to see if
the storage location correlates to the P3 Partner function rules
08/05/2005
INCLUDE zue_sd_0036.
INCLUDE zue_sd_0013.
ENDFORM.
*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.
DATA: intercoflag TYPE c.
VBEP-zzfield = xxxx-zzfield2.
Assign 'ZP' to Schedule line Category for Acct Assignment Grp =
Chui 10/23/2001
DATA: zzbukrs LIKE tvko-bukrs,
zzmtpos LIKE mvke-mtpos.
DATA: z_vbelv LIKE vbfa-vbelv," KN03
z_auart LIKE vbak-auart," KN03
z_vbtyp LIKE vbak-vbtyp," KN03
z_ettyp LIKE vbep-ettyp," KN03
z_pstyv LIKE vbap-pstyv," KN04
z_posnr LIKE vbap-posnr." KN04
DATA: BEGIN OF zzwerks OCCURS 0,
werks LIKE marc-werks,
END OF zzwerks.
IF vbak-vbtyp CN 'AB'. "ECLARKE 01-26-04
SELECT SINGLE bukrs
INTO zzbukrs
FROM tvko
WHERE vkorg = vbak-vkorg.
SELECT w~werks
INTO TABLE zzwerks
FROM t001w AS w JOIN t001k AS k
ON wbwkey = kbwkey
WHERE k~bukrs = zzbukrs.
SELECT SINGLE mtpos INTO zzmtpos
FROM mvke
WHERE matnr = vbap-matnr
AND vkorg = vbak-vkorg
AND vtweg = vbak-vtweg.
*lines added for valuated customer-returns project by msn
110903. It will set required schedule line category YR on specific
item categories if the document created is of type RE with reference
document being an invoice of type F2
*ECLARKE & MILIND NAND. 11-11-2003.
*Schedule Line Category - Valuate Customer Returns Stock
INCLUDE zue_sd_0010.
CASE vbap-pstyv.
WHEN 'ZRPN'.
EXIT.
WHEN 'TAN' OR 'TANN'.
IF vbkd-ktgrd = '01'. " Added 6/5/02
IF vbep-ettyp = 'CN'.
vbep-ettyp = 'ZA'.
ELSE.
vbep-ettyp = 'ZP'.
ENDIF.
ENDIF.
**Ernesto EDIT for UE DEMO 10/15/2002
***************TEST FUNCTION MODULE FOR USER EXIT MAINT.******
**ADDED A CASE STATEMENT BELOW.
CALL FUNCTION 'Z_UE_SD_GET_SCHEDULE_LINE_CAT'
EXPORTING
pstyv = vbap-pstyv
ktgrd = vbkd-ktgrd
ettyp2 = vbep-ettyp
IMPORTING
ettyp = vbep-ettyp.
****************END OF TEST SOURCE CODE******************
READ TABLE zzwerks WITH TABLE KEY werks = vbap-werks.
check sy-subrc ne 0.
IF sy-subrc NE 0.
Change inserted by Arvind R Kulkarni; 07/22/2002
TAN -> ZAN; TANN => ZANN
vbap-pstyv = 'ZAN'.
IF vbap-pstyv = 'TAN'.
vbap-pstyv = 'ZAN'.
ELSEIF vbap-pstyv = 'TANN'.
vbap-pstyv = 'ZANN'.
ENDIF.
end of change
ENDIF.
*ADDED CASE HERE FOR TEST FOR SYNTAX CHECK 10/15/2002
*CASE vbap-pstyv.
WHEN 'ZAN'.
READ TABLE zzwerks WITH TABLE KEY werks = vbap-werks.
CHECK sy-subrc EQ 0.
vbap-pstyv = 'TAN'.
WHEN 'ZANN'.
READ TABLE zzwerks WITH TABLE KEY werks = vbap-werks.
CHECK sy-subrc EQ 0.
vbap-pstyv = 'TANN'.
WHEN 'ZTAN'.
IF vbkd-ktgrd = '01'. " Added 6/5/02
IF vbep-ettyp = 'CN'.
vbep-ettyp = 'ZA'.
ELSE.
vbep-ettyp = 'ZP'.
ENDIF.
ENDIF.
READ TABLE zzwerks WITH TABLE KEY werks = vbap-werks.
check sy-subrc ne 0.
IF sy-subrc NE 0.
IF vbep-ettyp = 'CN'.
vbep-ettyp = 'ZA'.
ELSE.
vbep-ettyp = 'ZP'.
ENDIF.
ENDIF.
03/23/2005 KN03 Set Schedule Line default to ZF order type ZFD,
item cat ZTAN, sales org 5060, 5070, and 5071
IF vbak-auart EQ 'ZFD' AND
( vbak-vkorg = '5060' OR vbak-vkorg = '5070'
OR vbak-vkorg = '5071' ).
vbep-ettyp = 'ZF'.
ENDIF.
Begin of insertion for IRAT processing
Arvind R Kulkarni; Dated: 07/17/2002.
Changed to include YRAT; ; 11/22/2002
WHEN 'IRAT' OR 'YRAT'.
IF vbak-auart NE 'ZWAR'.
the sales order is NOT a ZWAR
READ TABLE zzwerks WITH TABLE KEY werks = vbap-werks.
IF sy-subrc NE 0.
the transaction IS intercompany
IF vbep-ettyp = 'CN'.
vbep-ettyp = 'YN'.
ELSE.
vbep-ettyp = 'YL'.
ENDIF.
ELSE.
the transaction IS NOT intercompany
IF vbep-ettyp = 'CN'.
vbep-ettyp = 'ZN'.
ELSE.
vbep-ettyp = 'ZL'.
ENDIF.
ENDIF.
IF vbkd-ktgrd = '01'.
sale is to an affiliate in local sales org
IF vbep-ettyp = 'CN'.
vbep-ettyp = 'YN'.
ELSE.
vbep-ettyp = 'YL'.
ENDIF.
ENDIF.
ELSE.
the sales order IS a ZWAR
READ TABLE zzwerks WITH TABLE KEY werks = vbap-werks.
IF sy-subrc NE 0.
the transaction IS intercompany
IF vbep-ettyp = 'CN'.
vbep-ettyp = 'ZA'.
ELSE.
vbep-ettyp = 'ZP'.
ENDIF.
ELSE.
the transaction IS NOT intercompany
NOTHING NEEDS TO BE DONE FOR ZWAR DOMESTIC
STD SCHED LINE CATEGORIES TO BE MAINTAINED.
IF VBEP-ETTYP = 'CN'.
VBEP-ETTYP = 'ZN'.
ELSE.
VBEP-ETTYP = 'ZL'.
ENDIF.
ENDIF.
IF VBKD-KTGRD = '01'.
sale is to an affiliate in local sales org
IF vbep-ettyp = 'CN'.
vbep-ettyp = 'ZA'.
ELSE.
vbep-ettyp = 'ZP'.
ENDIF.
ENDIF.
ENDIF.
End of insertion for IRAT processing
WHEN 'IRRS' OR 'IRRE' OR 'IRLA' OR 'IRLB' OR 'KBN' OR 'TAQ'
KSI Modification 04/22/03
Exclude check for item category 'YKW'
OR 'YTAN' OR 'ZKLN' OR 'KAN' OR 'ZTAQ'
OR 'YKW' OR 'IRRP' OR 'ZKBC' OR 'ZKBN' OR 'ZKAN' OR 'KLN'.
or 'ZKEN' OR 'ZKEC' or ZREK OR 'KEN'.
EXIT.
WHEN 'ZTR1' OR 'ZRBB' OR 'ZREB' OR 'ZREC' OR 'ZREF' OR 'ZREN'
Removed ZRTN to validate plant 9000
OR 'ZRFF' OR 'ZRNB' OR 'ZRNN' OR 'REN' OR 'RENN'
OR 'ZLN' OR 'IRAL' OR 'ZTR0' OR 'KLN'.
EXIT.
03/23/2005 KN03 set default sched line for KE & ZKE
WHEN 'KEN' OR 'ZKEG' OR 'ZKEN' OR 'ZKEC'.
IF vbak-vkorg EQ '5070'.
vbep-ettyp = 'Z0'.
ENDIF.
WHEN 'ZREK'.
INCLUDE zue_sd_0033.
IF vbap-werks = '9000'. " KN04
IF vbkd-ktgrd = '01'. " KN04
IF z_auart = 'ZFD ' and z_pstyv = 'KLN '. " KN04
vbep-ettyp = 'YK'. " KN04
ENDIF.
ENDIF.
ENDIF.
KSE Modification 04/10/03
For Item Cate 'ZRTN'
Assign 'YQ' to Schedule line cat, if cross-company
'YU' if not.
WHEN 'ZRTN'.Hi,
Step 1) Create a include ZSD_DEFAULT_BWTAR and add the following code
DATA: S_MBEW TYPE MBEW.
Check for create and change.
IF T180-TRTYP = 'H' OR T180-TRTYP = 'V'.
IF VBAK-VKORG = '5090' AND VBAK-AUART = 'ZSBK'.
SELECT SINGLE * FROM MBEW
INTO S_MBEW
WHERE MATNR = VBAP-MATNR
AND BWKEY = VBAP-WERKS.
IF SY-SUBRC = 0 AND S_MBEW-BWTTY = '1'.
Check if it is for line item creation.
WHen the changes the value this will not trigger.
IF SVBAP-TABIX = 0.
VBAP-BWTAR = 'RH'.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
STEP 2)
Add the include to the subroutine USEREXIT_FIELD_TO_VBAP. The include statement is marked in bold.
*TABLES: zue003, tvarv.
*DATA: werks LIKE vbap-werks.
Start of DEVK923935.
Global Definition
INCLUDE zsdi_mv45afzz_top.
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.
*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: zvbtyp LIKE vbfa-vbtyp_n,
zvbeln LIKE vbfa-vbeln.
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.
IF vbap-pstyv = 'IRLA'.
CHECK sy-tcode = 'VA01' OR sy-tcode = 'VA02'.
IF sy-tcode = 'VA01' OR sy-tcode = 'VA02'.
SELECT SINGLE vbtyp_n INTO zvbtyp FROM vbfa
WHERE vbelv = xvbap-vbeln AND posnv = vbap-posnr.
CHECK sy-subrc <> 0.
IF sy-subrc <> 0.
CASE screen-group2.
WHEN 'LOO'.
IF screen-name = 'VBAP-WERKS'.
screen-input = 1.
ENDIF.
ENDCASE.
ENDIF.
ENDIF.
ENDIF.
Make Reject Reason modifiable when document category is 'RETURNS'
06/10/02
Modified by Ak for check on subsequent credit memo
This opens up the field - reason for rejection - for change even after
the material has been received into the system on the returns delivery
but before the Returns Credit Memo has been issued.
Changed field to be modified from Reason for Rejection to Item
Category on the line item for which no credit to be given.
select single * from vbfa where vbelv = vbak-vbeln and
vbtyp_n = 'O'.
select a Returns Credit Memo document from VBFA that has NOT been
cancelled. if the selection is successful, credit has been issued and
the field should stay locked. however, if selection is unsuccessful
and since no credit has been issued, the field for item category
must be available for changing, if need be.
check: vbak-vbtyp = 'H'.
IF vbak-vbtyp = 'H'.
IF sy-tcode = 'VA01' OR sy-tcode = 'VA02'.
SELECT SINGLE vbrk~vbeln INTO zvbeln
FROM vbfa INNER JOIN vbrk ON vbfavbeln = vbrkvbeln
WHERE vbfavbelv = vbak-vbeln AND vbfaposnv = vbap-posnr
AND vbfavbtyp_n = 'O' AND vbrkfksto NE 'X'.
CHECK sy-subrc NE 0.
CASE screen-group2.
WHEN 'LOO'.
IF screen-name = 'VBAP-PSTYV'.
screen-input = 1.
ENDIF.
ENDCASE.
ENDIF.
ENDIF.
INCLUDE zue_sd_0029.
**If no invoice is created then make PSTYV ready for input for item
**category IRIN.
INCLUDE zue_sd_0031.
ENDFORM.
*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.
vbak-zzfield = xxxx-zzfield2.
**Ernesto EDIT for UE DEMO 10/16/2002
SELECT single * INTO TABLE i_tvarv FROM tvarv WHERE name =
*ZKS_KSEASORG'.
Start of DEVK923935.
Initialization Section
INCLUDE zsdi_mv45afzz_initialization.
End of DEVK923935.
**{ INSERT SNDK900075 1
Change user exit according to Online Documentation to
copy ship-to info to sale doc header (VBAK)
*CODE BELOW*REPLACED WITH zue_sd_0017***********
IF vbak-kvgr1 IS INITIAL AND
vbak-kvgr2 IS INITIAL AND
vbak-kvgr3 IS INITIAL AND
vbak-kvgr4 IS INITIAL AND
vbak-kvgr5 IS INITIAL.
SELECT SINGLE vkgrp vkbur kvgr1 kvgr2 kvgr3 kvgr4 kvgr5
FROM knvv INTO (vbak-vkgrp, vbak-vkbur, vbak-kvgr1, vbak-kvgr2,
vbak-kvgr3, vbak-kvgr4, vbak-kvgr5)
WHERE kunnr = kuwev-kunnr AND
vkorg = vbak-vkorg AND
vtweg = vbak-vtweg AND
spart = vbak-spart.
ENDIF.
*CODE ABOVE*REPLACED WITH zue_sd_0017***********
INCLUDE zue_sd_0017.
*CODE BELOW*REPLACED WITH zue_sd_0017***********
IF svbak-tabix = 0.
SELECT SINGLE vsbed FROM knvv INTO vbak-vsbed
*WHERE kunnr = kuwev-kunnr AND
vkorg = vbak-vkorg AND
vtweg = vbak-vtweg AND
spart = vbak-spart.
ENDIF.
*CODE ABOVE*REPLACED WITH zue_sd_0017***********
Start of DEVK915182
**Ernesto EDIT for UE DEMO 10/15/2002.
READ TABLE i_tvarv WITH KEY name = 'ZKS_KSEASORG'.
IF sy-subrc = 0.
IF vbak-vkorg = i_tvarv-low.
IF vbak-vkorg IN i_zsd01_vkorg.
IF sy-tcode EQ 'VA01'.
IF sy-dynnr EQ '4021'.
IF sy-ucomm NE 'SICH'.
l_pop_type = 'X'.
INCLUDE zue_sd_0027.
PERFORM partner_validation USING 'X'.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
end-of DEVK915182
Project : KSEA - Sales Force Expansion of 1st Jan 2003
Include for KSEA Sales Org 5010 only for PopUp Windows " 12/23/2002
INCLUDE zsd_salesforce_expnsn_hdr." Include 1 of 4
*/ Description : KSE Modification to remove the billing block for
*/ returns/credits/debits if sales Org is 5090.
*ORIGINAL CODE
*if vbak-vkorg = '5090' and vbak-vbtyp ca 'HKL'.
*vbak-faksk = ' '.
*endif.
IF sy-tcode = 'VA01'.
IF vbak-vkorg IN i_zsd09_vkorg.
IF vbak-vbtyp IN i_zsd09_vbtyp.
vbak-faksk = ' '.
ENDIF.
ENDIF.
ENDIF.
BREAK-POINT.
INCLUDE zue_sd_0039.
ENDFORM.
*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 SNDK900164 1
Item Category Determination
DATA: zzbukrs LIKE tvko-bukrs,
zzmtpos LIKE mvke-mtpos.
DATA: BEGIN OF zzwerks OCCURS 0,
werks LIKE marc-werks,
END OF zzwerks.
DATA: zdoccat LIKE tvak-vbklt,
zvmsta LIKE mvke-vmsta,
zspvbc LIKE tvms-spvbc,
zvmstb LIKE tvmst-vmstb.
DATA: z_xvbap LIKE xvbap,
yp1 LIKE t001k-bwkey,
z_uepos_bukrs LIKE t001k-bukrs.
IF i_zsd01_vkorg[] IS INITIAL.
If the initialization was not performed in the Fill VBAK,
reload data
INCLUDE zsdi_mv45afzz_initialization.
ENDIF.
SELECT SINGLE bukrs
INTO zzbukrs
FROM tvko
WHERE vkorg = vbak-vkorg.
SELECT w~werks
INTO TABLE zzwerks
FROM t001w AS w JOIN t001k AS k
ON wbwkey = kbwkey
WHERE k~bukrs = zzbukrs.
SELECT SINGLE mtpos INTO zzmtpos
FROM mvke
WHERE matnr = vbap-matnr
AND vkorg = vbak-vkorg
AND vtweg = vbak-vtweg.
Export Plant - inport in ZXQSMU07
EXPORT zz_plant = vbap-werks TO MEMORY ID 'ZZPLANT'. " KN05
check vbap-pstyv = 'TAN' or vbap-pstyv = 'TANN'.
removed the CHECK statement and replaced by IF-ENDIF.
inserted by arvind r kulkarni for TAN, TANN switching
IF vbap-pstyv = 'TAN' OR vbap-pstyv = 'TANN'
OR vbap-pstyv = 'REN' " KN02
OR vbap-pstyv = 'RENN' . " KN02
READ TABLE zzwerks WITH TABLE KEY werks = vbap-werks.
check sy-subrc ne 0.
IF sy-subrc NE 0.
IF vbap-pstyv = 'TAN'.
vbap-pstyv = 'ZAN'.
ELSEIF vbap-pstyv = 'REN'. " KN02
vbap-pstyv = 'YREN'. " KN02
ELSEIF vbap-pstyv = 'RENN'. " KN02
vbap-pstyv = 'YRNN'. " KN02
ELSEIF vbap-pstyv = 'TANN'.
vbap-pstyv = 'ZANN'.
ENDIF.
ENDIF.
ENDIF.
INCLUDE zue_sd_0014.
Begin insert for check for discontinued material in repair orders
LOGIC: For IRAT item categories, check if the material status field *
blank or populated. *
If populated, get the value of the D-Chain specific status *
and issue warning/error message with the associated text *
from config the D-Chain specific material status. *
Included YRAT to this logic (YRAT is free IRAT); 11/22/2002. *
IF vbap-pstyv = 'IRAT' OR vbap-pstyv = 'YRAT'.
CLEAR: zvmsta, zvmstb, zspvbc.
SELECT SINGLE vmsta INTO zvmsta FROM mvke WHERE
matnr = vbap-matnr AND vkorg = vbak-vkorg
AND vtweg = vbak-vtweg.
CHECK: NOT zvmsta IS INITIAL.
IF NOT zvmsta IS INITIAL.
SELECT SINGLE spvbc INTO zspvbc FROM tvms WHERE
vmsta = zvmsta.
SELECT SINGLE vmstb INTO zvmstb FROM tvmst WHERE
spras = sy-langu AND vmsta = zvmsta.
CASE zspvbc.
WHEN 'A'.
MESSAGE ID 'V1' TYPE 'W' NUMBER '028' WITH zvmsta zvmstb.
WHEN 'B'.
MESSAGE ID 'V1' TYPE 'E' NUMBER '028' WITH zvmsta zvmstb.
ENDCASE.
ENDIF.
ENDIF.
End insert for check for discontinued material in repair orders
INCLUDE zue_sd_0004.
INCLUDE zue_sd_0005.
end of DEVK923935.
****************END OF TEST SOURCE CODE******************
Begin Insert to assign material entered for TRADE material
Ak; 11/08/2002.
For trade material, the system will now mandate entry of higher level
item number and based on this, the system will bring in specialty,
material number (into material entered) and profit centre from this
higher level item into the line item for material TRADE.
Added MVGR2 & 3 to pass onto TRADE material; 11/12/2002 - Arvind.
Added material a/c assignment grp to trade-in material.
Added ZTRD item category to this logic. - Arvind 11/18/2002.
INCLUDE zzsdprc01.
INCLUDE zue_sd_0028.
End Insert to assign material entered for TRADE material
********************End of DIP Profile change************************
Get custom group data from MVKE (Sales Data for Material) by Material
when order type is 'RAS' (Repairs/Service)
and populate line item's Additional data A
INCLUDE zue_sd_0006.
INCLUDE zue_sd_0001.
include ZUE_SD_0032.
INCLUDE zue_sd_0002.
Get similar data (as above) from Servicable Material
INCLUDE zue_sd_0003.
*} INSERT
Determine Delivery Priority from SH Partner
11/02/2001
SELECT SINGLE lprio
FROM knvv
INTO vbap-lprio
WHERE kunnr = kuwev-kunnr AND
vkorg = vbak-vkorg AND
vtweg = vbak-vtweg AND
spart = vbak-spart.
Determine Delivery Priority for Order Type RAS
INCLUDE zsd_check_pstyv_werks.
To re-determine Matwa if the replacement item is changed afterwards
Niranjan 05/10/05 and ECLARKE
INCLUDE zue_sd_0021.
Mod for all sales organizations
Determination of Profit Center
06/24/03
INCLUDE zue_sd_0007.
End PRCTR Determination for KSI's document
KSI modification
Code to enter the actual part number of the item being repaired,
rather than "REPAIR"
09/18/02 GM
DATA: intercoflag TYPE c.
PERFORM zz_determine_cross_comp USING vbak-vkorg
vbap-werks
intercoflag.
IF intercoflag = 'Y'
AND
( vbap-pstyv = 'IRIN' OR vbap-pstyv = 'ZRIN' ).
SELECT SINGLE matwa INTO vbap-matwa FROM vbap
WHERE vbeln = vbap-vbeln AND posnr = vbap-uepos.
IF sy-subrc NE 0.
MESSAGE e006(z1) WITH vbap-uepos.
ENDIF.
ENDIF.
End material look up modification GM 9/17/02
KSI modification
DP90 Only:
Remove Billing Block from IRIN items and moved them to the header
10/06/02 CNG
11/18/2002 Tr-DEVK917363
Added Sales Orgs 5040 & 5060
KSI modification
06/10/2003 CNG CN01
If IRIN, clear billing block at item level
IF sy-tcode = 'DP90'.
IF vbap-werks = '7000' AND vbak-vkorg = '5010' AND" SM01-
vbap-pstyv = 'IRIN'." SM01-
IF vbap-werks = '7000' AND" SM01+
( vbak-vkorg IN i_zsd01_vkorg OR" SM01+
vbak-vkorg = '5040' OR" SM01+
Removed >>
vbak-vkorg = '5060' )" SM01+ CN01-
AND vbap-pstyv = 'IRIN'." SM01+ CN01-
vbak-faksk = '02'.
Removed <<
Inserted - check and block for line item IRIN only
vbak-vkorg = '5060' )." SM01+
vbak-faksk = '02'.
IF vbap-pstyv = 'IRIN'." CN01+
CLEAR vbap-faksp.
Inserted - check and block for line item IRIN only
ENDIF.
ENDIF.
ENDIF.
KSI modification
Routine to populate VBAP-ZZEDATU and VBAP-ZZVDATU on change and
creation of order
02/10/03 CNG
PERFORM check_custom_dates.
KSE Modification to create return item automatically**
Copied from Niranjan's routine tested in SND210 Date 04/05/03
INCLUDE zue_sd_0008.
User Exit for Service Processing - Clear Results
Analysis Key in sales order item for non-KSE service
items. DEVK927084 W. Miller 05/12/2003
Changed to validate by plant instead of sales org.
06/30/03 BEGIN>>>
if not vbak-vkorg = '5090' and vbap-bedae = 'SE'.
*Added 5000 for KSEM Prjct 02-09-2006 EC
IF NOT ( vbap-werks = '9000' OR vbap-werks = '5000' )
AND ( vbap-bedae = 'SE' OR VBAP-BEDAE = 'SERA' ).
06/30/03 END <<<<
CLEAR vbap-abgrs.
ENDIF.
End of DEVK924084
*/ Author : w/ Trimb.
*/ Date : 10/07/2003 ---> Repair No : DEVK930002
*/ Description : KSE Modification For plant 9000, to check the
*/ material is 'Non-R' for RAS order type
*/ and is 'R' for ZREX and ZWAR order types.
*Added lines below for - There is a user exit which exists that does
*not allow materials that do not begin with an "R" to be posted into
*plant 9000 if they are attached to a ZWAR order type. KSE/KSEA would
*like to modify this exit to allow materials with profit centers
*5090-03003 and 5090-04003 to be posted.
*ECLARKE/Niranjan 07-29-2004
*________________________n 07-29-2004__________________
DATA: flag_dexe.
TABLES: zzue027.
CLEAR: flag_dexe.
SELECT SINGLE werks auart prctr INTO (zzue027-werks, zzue027-auart,
zzue027-prctr) FROM zzue027 WHERE werks = vbap-werks AND auart =
vbak-auart AND prctr = vbap-prctr.
IF sy-subrc = 0.
flag_dexe = 'X'.
ENDIF.
*________________________ 07-29-2004__________________
IF flag_dexe IS INITIAL. " 07-29-2004
IF vbap-werks IN i_zsd09_werks.
IF ( vbak-auart IN i_zsd02_auart AND vbap-pstyv IN i_zsd04_pstyv AND
vbap-matwa(1) = 'R' ) OR ( vbak-auart IN i_zsd02_auart AND
vbap-pstyv IN i_zsd03_pstyv AND vbap-matnr(1) = 'R' ).
IF vbap-matwa(1) = 'R'.
MESSAGE e001(zkse) WITH vbap-matwa vbap-posnr vbak-auart
vbap-pstyv.
ENDIF.
IF vbap-matnr(1) = 'R'.
MESSAGE e001(zkse) WITH vbap-matnr vbap-posnr vbak-auart
vbap-pstyv.
ENDIF.
ELSEIF ( vbak-auart IN i_zsd03_auart AND vbap-pstyv IN
i_zsd04_pstyv AND vbap-matwa(1) <> 'R' ) OR ( vbak-auart IN
i_zsd03_auart AND vbap-pstyv IN i_zsd03_pstyv AND vbap-matnr(1) <> 'R' )
OR ( vbak-auart IN i_zsd04_auart AND vbap-pstyv IN i_zsd04_pstyv AND
vbap-matwa(1) <> 'R' ) OR ( vbak-auart IN i_zsd04_auart AND vbap-pstyv
IN i_zsd03_pstyv AND vbap-matnr(1) <> 'R' ).
IF vbap-matwa(1) <> 'R'.
MESSAGE e001(zkse) WITH vbap-matwa vbap-posnr vbak-auart
vbap-pstyv.
ENDIF.
IF vbap-matnr(1) <> 'R'.
MESSAGE e001(zkse) WITH vbap-matnr vbap-posnr vbak-auart
vbap-pstyv.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
INCLUDE zue_sd_0015.
include zue_sd_0019
Enhancement to populate Storage Location for sales order 5090
and plant 9000. But any companies can use it as long as entries are
maintained in table zsd_default_sloc
Niranjan 02/11/04
DEVK933987 - MV45AFZZ - MPitisci 4/12/2004
DEVK933989 - ZUE_SD_0019 include
DEVK933998 - ZSD_DEFAULT_SLOC table
INCLUDE zue_sd_0019.
To give hard error for D-CHin status 07 for items catgories other
than trade.
04/10/05
INCLUDE zue_sd_0034.
Checks if the storage location value is changed and checks to see if
the storage location correlates to the P3 Partner function rules
08/05/2005
INCLUDE zue_sd_0036.
INCLUDE zue_sd_0013.
<b>**************New code********
INCLUDE ZSD_DEFAULT_BWTAR.
********************************</b>
ENDFORM.
*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.
DATA: intercoflag TYPE c.
VBEP-zzfield = xxxx-zzfield2.
Assign 'ZP' to Schedule line Category for Acct Assignment Grp =
Chui 10/23/2001
DATA: zzbukrs LIKE tvko-bukrs,
zzmtpos LIKE mvke-mtpos.
DATA: z_vbelv LIKE vbfa-vbelv," KN03
z_auart LIKE vbak-auart," KN03
z_vbtyp LIKE vbak-vbtyp," KN03
z_ettyp LIKE vbep-ettyp," KN03
z_pstyv LIKE vbap-pstyv," KN04
z_posnr LIKE vbap-posnr." KN04
DATA: BEGIN OF zzwerks OCCURS 0,
werks LIKE marc-werks,
END OF zzwerks.
IF vbak-vbtyp CN 'AB'. "ECLARKE 01-26-04
SELECT SINGLE bukrs
INTO zzbukrs
FROM tvko
WHERE vkorg = vbak-vkorg.
SELECT w~werks
INTO TABLE zzwerks
FROM t001w AS w JOIN t001k AS k
ON wbwkey = kbwkey
WHERE k~bukrs = zzbukrs.
SELECT SINGLE mtpos INTO zzmtpos
FROM mvke
WHERE matnr = vbap-matnr
AND vkorg = vbak-vkorg
AND vtweg = vbak-vtweg.
*lines added for valuated customer-returns project by msn
110903. It will set required schedule line category YR on specific
item categories if the document created is of type RE with reference
document being an invoice of type F2
*ECLARKE & MILIND NAND. 11-11-2003.
*Schedule Line Category - Valuate Customer Returns Stock
INCLUDE zue_sd_0010.
CASE vbap-pstyv.
WHEN 'ZRPN'.
EXIT.
WHEN 'TAN' OR 'TANN'.
IF vbkd-ktgrd = '01'. " Added 6/5/02
IF vbep-ettyp = 'CN'.
vbep-ettyp = 'ZA'.
ELSE.
vbep-ettyp = 'ZP'.
ENDIF.
ENDIF.
**Ernesto EDIT for UE DEMO 10/15/2002
***************TEST FUNCTION MODULE FOR USER EXIT MAINT.******
**ADDED A CASE STATEMENT BELOW.
CALL FUNCTION 'Z_UE_SD_GET_SCHEDULE_LINE_CAT'
EXPORTING
pstyv = vbap-pstyv
ktgrd = vbkd-ktgrd
ettyp2 = vbep-ettyp
IMPORTING
ettyp = vbep-ettyp.
****************END OF TEST SOURCE CODE******************
READ TABLE zzwerks WITH TABLE KEY werks = vbap-werks.
check sy-subrc ne 0.
IF sy-subrc NE 0.
Change inserted by Arvind R Kulkarni; 07/22/2002
TAN -> ZAN; TANN => ZANN
vbap-pstyv = 'ZAN'.
IF vbap-pstyv = 'TAN'.
vbap-pstyv = 'ZAN'.
ELSEIF vbap-pstyv = 'TANN'.
vbap-pstyv = 'ZANN'.
ENDIF.
end of change
ENDIF.
*ADDED CASE HERE FOR TEST FOR SYNTAX CHECK 10/15/2002
*CASE vbap-pstyv.
WHEN 'ZAN'.
READ TABLE zzwerks WITH TABLE KEY werks = vbap-werks.
CHECK sy-subrc EQ 0.
vbap-pstyv = 'TAN'.
WHEN 'ZANN'.
READ TABLE zzwerks WITH TABLE KEY werks = vbap-werks.
CHECK sy-subrc EQ 0.
vbap-pstyv = 'TANN'.
WHEN 'ZTAN'.
IF vbkd-ktgrd = '01'. " Added 6/5/02
IF vbep-ettyp = 'CN'.
vbep-ettyp = 'ZA'.
ELSE.
vbep-ettyp = 'ZP'.
ENDIF.
ENDIF.
READ TABLE zzwerks WITH TABLE KEY werks = vbap-werks.
check sy-subrc ne 0.
IF sy-subrc NE 0.
IF vbep-ettyp = 'CN'.
vbep-ettyp = 'ZA'.
ELSE.
vbep-ettyp = 'ZP'.
ENDIF.
ENDIF.
03/23/2005 KN03 Set Schedule Line default to ZF order type ZFD,
item cat ZTAN, sales org 5060, 5070, and 5071
IF vbak-auart EQ 'ZFD' AND
( vbak-vkorg = '5060' OR vbak-vkorg = '5070'
OR vbak-vkorg = '5071' ).
vbep-ettyp = 'ZF'.
ENDIF.
Begin of insertion for IRAT processing
Arvind R Kulkarni; Dated: 07/17/2002.
Changed to include YRAT; ; 11/22/2002
WHEN 'IRAT' OR 'YRAT'.
IF vbak-auart NE 'ZWAR'.
the sales order is NOT a ZWAR
READ TABLE zzwerks WITH TABLE KEY werks = vbap-werks.
IF sy-subrc NE 0.
the transaction IS intercompany
IF vbep-ettyp = 'CN'.
vbep-ettyp = 'YN'.
ELSE.
vbep-ettyp = 'YL'.
ENDIF.
ELSE.
the transaction IS NOT intercompany
IF vbep-ettyp = 'CN'.
vbep-ettyp = 'ZN'.
ELSE.
vbep-ettyp = 'ZL'.
ENDIF.
ENDIF.
IF vbkd-ktgrd = '01'.
sale is to an affiliate in local sales org
IF vbep-ettyp = 'CN'.
vbep-ettyp = 'YN'.
ELSE.
vbep-ettyp = 'YL'.
ENDIF.
ENDIF.
ELSE.
the sales order IS a ZWAR
READ TABLE zzwerks WITH TABLE KEY werks = vbap-werks.
IF sy-subrc NE 0.
the transaction IS intercompany
IF vbep-ettyp = 'CN'.
vbep-ettyp = 'ZA'.
ELSE.
vbep-ettyp = 'ZP'.
ENDIF.
ELSE.
the transaction IS NOT intercompany
NOTHING NEEDS TO BE DONE FOR ZWAR DOMESTIC
STD SCHED LINE CATEGORIES TO BE MAINTAINED.
IF VBEP-ETTYP = 'CN'.
VBEP-ETTYP = 'ZN'.
ELSE.
VBEP-ETTYP = 'ZL'.
ENDIF.
ENDIF.
IF VBKD-KTGRD = '01'.
sale is to an affiliate in local sales org
IF vbep-ettyp = 'CN'.
vbep-ettyp = 'ZA'.
ELSE.
vbep-ettyp = 'ZP'.
ENDIF.
ENDIF.
ENDIF.
End of insertion for IRAT processing
WHEN 'IRRS' OR 'IRRE' OR 'IRLA' OR 'IRLB' OR 'KBN' OR 'TAQ'
KSI Modification 04/22/03
Exclude check for item category 'YKW'
OR 'YTAN' OR 'ZKLN' OR 'KAN' OR 'ZTAQ'
OR 'YKW' OR 'IRRP' OR 'ZKBC' OR 'ZKBN' OR 'ZKAN' OR 'KLN'.
or 'ZKEN' OR 'ZKEC' or ZREK OR 'KEN'.
EXIT.
WHEN 'ZTR1' OR 'ZRBB' OR 'ZREB' OR 'ZREC' OR 'ZREF' OR 'ZREN'
Removed ZRTN to validate plant 9000
OR 'ZRFF' OR 'ZRNB' OR 'ZRNN' OR 'REN' OR 'RENN'
OR 'ZLN' OR 'IRAL' OR 'ZTR0' OR 'KLN'.
EXIT.
03/23/2005 KN03 set default sched line for KE & ZKE
WHEN 'KEN' OR 'ZKEG' OR 'ZKEN' OR 'ZKEC'.
IF vbak-vkorg EQ '5070'.
vbep-ettyp = 'Z0'.
ENDIF.
WHEN 'ZREK'.
INCLUDE zue_sd_0033.
IF vbap-werks = '9000'. " KN04
IF vbkd-ktgrd = '01'. " KN04
IF z_auart = 'ZFD ' and z_pstyv = 'KLN '. " KN04
vbep-ettyp = 'YK'. " KN04
ENDIF.
ENDIF.
ENDIF.
KSE Modification 04/10/03
For Item Cate 'ZRTN'
Assign 'YQ' to Schedule line cat, if cross-company
'YU' if not.
WHEN 'ZRTN'.
KN03 for KSI set default schedule line for order type ZREK
INCLUDE zue_sd_0033.
IF svbep-tabix IS INITIAL.
IF vbap-werks = '9000'.
IF vbkd-ktgrd = '01'. " KN04
IF z_auart = 'ZFD' and z_pstyv = 'KLN '. " KN04
vbep-ettyp = 'YK'. " KN04
ELSE. " KN04
vbep-ettyp = 'YQ'.
ENDIF.
ELSE.
vbep-ettyp = 'YU'.
ENDIF.
ENDIF.
ENDIF.
KN03 for KSI set default schedule line for order type ZREK
INCLUDE zue_sd_0033.
WHEN OTHERS.
IF vbkd-ktgrd = '01'.
IF vbep-ettyp = 'CN'.
vbep-ettyp = 'ZA'.
ELSE.
vbep-ettyp = 'ZP'.
ENDIF.
ENDIF.
ENDCASE.
endif.
Redetermine Movement Type
PERFORM tvep_select(sapmv45a) USING vbep-ettyp
charx
sy-subrc.
vbep-bwart = tvep-bwart.
ENDIF.
KSE Mod
User Exit for Repair Replacement
Export VBEP-ETTYP, imported by RV64A950
04/18/03
EXPORT i_ettyp = vbep-ettyp TO MEMORY ID 'ZZSCHEDULE'.
**lines added for valuated customer-returns project by msn
110903. It will set required schedule line category YR on specific
item categories if the document created is of type RE with reference
document being an invoice of type F2
**. 11-11-2003.
**Schedule Line Category - Valuate Customer Returns Stock
BREAK-POINT.
INCLUDE zue_sd_0010.
*KSEA Modification to default item creation date for the IRAT
*line item schedule line. SAP Note 23281
04/01/04
INCLUDE zue_sd_0020.
ENDFORM.
*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.
Get Customer group, Price group and Price list type *
by Ship-to party
10/04/2001
DATA: yp1 LIKE t001k-bwkey,
z_uepos_bukrs LIKE t001k-bukrs.
*Request by Customer Service - Marian Favors 11-08-2004
TABLES: zzue030. "ECLARKE 11-08-2004
SELECT SINGLE tcode INTO zzue030-tcode FROM zzue030
WHERE tcode = sy-tcode. "ECLARKE 11-08-2004
IF sy-subrc = 0. "ECLARKE 11-08-2004
Removed check for customer group as this was required by Steve Ludewig
IF " vbkd-kdgrp IS INITIAL AND "Arvind Kulkarni; 08/05/2002.
vbkd-konda IS INITIAL AND
vbkd-pltyp IS INITIAL.
SELECT SINGLE kdgrp konda pltyp bzirk
INTO (vbkd-kdgrp, vbkd-konda, vbkd-pltyp, vbkd-bzirk)
FROM knvv
WHERE kunnr = kuwev-kunnr
AND vkorg = vbak-vkorg
AND vtweg = vbak-vtweg
AND spart = vbak-spart.
ENDIF.
ENDIF. "ECLARKE 11-08-2004
Redetermine Schedule line Category if Acct Assignment Grp is changed
to
Chui 10/23/2001
IF svbkd-tabix > 0 AND sy-dynnr = '4311'.
IF vbkd-ktgrd = '01' AND vbep-ettyp <> 'ZP'.
PERFORM userexit_move_field_to_vbep.
ENDIF.
ENDIF.
INCLUDE zzsdprc01.
To make the value of the field VBAK-ZUONR same as VBKD-BSTKD
05/04/04
vbak-zuonr = vbkd-bstkd.
ENDFORM.
*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.
ENDFORM.
*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.
*{ INSERT SNDK900075 1
tkomk-aland = t001-land1.
*} INSERT
Fill Zip code with Ship-to party's
tkomk-post_code1 = kuwev-pstlz.
ENDFORM.
*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 = x -
How to add custoim fields on the additiondata b tab of va01 and va02
Hi All,
i want to add the field on the Additional data B tab of the VA01 and VA02 at header level.
Already one field is there now i want to add one more field.How to proceed.
I think i have to go with screen exits.Can you help me in proceeding further and where should i write the code.
It is urgetn.Please help meI have to move the updated fields to the vbak table
The code is like this
If VBAK-ZZGrswgh less than ZTRKLMT-ZZweight OR
VBAK-ZZCubTot less than ZTRKLMT-ZZCube OR
VBAK-ZZPaltot less than ZTRKLMT-ZZPallet
CLEAR VBAK_ZZTRKLMT.
Else
MOVE X TO VBAK_ZZTRKLMT.
End if
should i write this code in the USEREXIT_MOVE_FIELD_TO_VBAK of program MV45AFZZ ?
This user exit should trigger when
VBAK-AUART Equals 'ZWH' OR
VBAK-AUART Equals 'ZFV'
Reply soon -
Hi!
We are having the following problem, and do not know how to solve it. When I created an order(request / PO) using VA01, we need validate/check the MANUAL PRICE charged in the lapel of CONDITIONS ( This one must not overcome +/-% charged in a Z table)... Then inside the user: USEREXIT_MOVE_FIELD_TO_VBAK we create the validation. So, if the user charge a manual price that overcomes or low than the established on this %, we show an popup error. The user can accept the message and automatically the order(request / PO) is generated blocked. Or To push the manual entered price back. There we need to refresh the scheme of calculation, because in this moment The taxes are calculated with the entered MANUAL PRICE previously, and this should not be happen.
I need to know if I can do something to update, before going out from the EXIT, the scheme of calculation that in this moment is in the XKOMV table simulating the action of "update prices" button.
Thank you very much!Hi,
Thanks, but ...
At that point I haven't in memory the manual price in komv.
Now I'm trying: USEREXIT_PRICING_CHECK
Kisses -
User exit for Dlvy Block at header for sales order for Companycode & materl
Hi all,
I have a requirement. I need to apply a Delivery Block for all sales orders which fall
In a particualr company code "999" and if they have any configurable material in the item level.
When a Sales Order is generated, during the process of generation, I should
Write a loigc such that, if the sales orders fall in a particlar company code
Say for '999' and if they have a configurable material at item level,
I have to trigger an ABAP Proxy that goes and fetches a Yes/No value from an
External system. Based on this Flag value I h ave to then apply a delivery block for
The order at header level.
So I assume, I should put a logic in some user exit that gets triggered before order is saved.
And in that user exit I have to check if the Company Code of that order is '999' and if it has
Configurable product or not. If it satisfies the 2 conditions, I should, trigger this ABAP Proxy and
Based on the true/False value I have to set Delivery Block or do not set delivery block for the order
At header level.
So I think first I should figure out following things.
1) user exit ..where I should put the code to check conditions and to apply delivery block.
2) write a proxy and trigger that proxy in this user exit.
Coming to first part, which user exit should I use to set delivery block for the order
At header level. And how will I check for company code and config product?
Which variables of the SAP stnd pgm store Company Code and Config product values so that
I can check those variables for that values?
Please suggest and help me with this.
Any help will be highly appreciated.
Regards,
Sam1)go to the main program sapmv45a
include MV45AFZZ ->userexit_move_field_to_vbak
depending on ur conditions ...
keep a break-point in the form userexit_move_field_to_vbak ,and if it stops there Check for vbak-lifsk .
Write a condition to set the deliveryblock that is vbak-lifsk = 'xx'.
2)then regarding your second point ...what is the middle ware used to interact with legacy system
let me know -
Complete Delivery at Line item level in Sales Order
Hello Gurus,
While creating a sales order for some customers (the sales area tab in the customer master data has complete delivery and full delivery at item level), the complete delivery flag should be enabled and partial delivery flag at item level shoulb be C.
We have a situation where this is not working in some cases. I need to know what user exits are copying the customer master data into the sales order fields. Please give me a lead how I can proceed with this.
Regards,
BaluHi Balu,
Please check user exits in program MV45AFZZ.
i.e USEREXIT_MOVE_FIELD_TO_VBAK
Regards,
Gumanti -
How to add a New schedule line and update the order quantity?
Hi all,
I have to add a new schedule line in VA01/VA02 so that when ther is partial confirmed quantity against a schedule line, we have to create a new schdule line based on the existing so that it will contain confirmed in one and unconfirmed in the other.
The schedule line will split once the user go to Header data screen in VA01/VA02. So I used USEREXIT_MOVE_FIELD_TO_VBAK user exits in MV45AFZZ include program.
I splited the order quantity against the confirmed quantity and added it as new schedule line in the XVBEP internal table and update UPDKZ flags for XVBEP & YVBEP.
Could anyone tell me is there any other way to do this without updating XVBEP? Because it is affecting some other place because of index table is not updating. How to you think use if update xvbap-etenr_high and update index table IVBEP1 for new line insert into XVBEP instead directly inseritng it into?
My code as follows:
xvbep-WMENG = t_temp-WMENG .
modify xvbep TRANSPORTING WMENG.
t_temp1- ETENR = '0002'.
if SY-SUBRC <> 0.
t_temp1-UPDKZ = UPDKZ_NEW.
modify xvbep TRANSPORTING WMENG UPDKZ.
endif.
With Regards
RajHave you got thru this one if so please provide me with the solution as i got the same req' ..
-
Hello,
I have an issue regarding delivery block.
I've read a couple of posts regarding this, but they all solved their issue by using userexit_save_document or userexit_save_document_prepare which is no option for me.
My issue is the following:
I've created an order type ZTA (copy of TA) and setup a default delivery block "Z1 - in work" to that order type.
This prevents that after saving the order it will not be automatically delivered by a job which is running in background.
So each time I create a ZTA order with VA01, it will set the delivery block Z1. That's fine.
Now let's say when a customer has a delivery block (e.g. Z5), it will not overwrite the order delivery block Z1, when entering sales-to-party (or ship-to-party)!
Now I tried to add some code to userexit_move_field_to_vbak like that:
if not kuwev-lifsd is initial.
vbak-lifsk = kuwev-lifsd. " Z1 -> Z5
else.
if not kuagv-lifsd is initial.
vbak-lifsk = kuagv-lifsd. " Z1 -> Z5
endif.
endif.
Result: It will execute my new code sequence, but will not change the delivery block Z1 to Z5 on the VA01 screen. Maybe because I'm at this step not in update but insert mode?
I need to show the customer's delivery block while creating the order, means showing the delv. block after saving is too late.
Is there maybe a better exit to change the order delivery block to the customers delivery block?
Thanks in advance
WolfgangDear Wolf,
I dont know whether it might help you but , we had a requirement to make the information message of CUSTOMER BLOCK (which we do in XD05) to ERROR message .
It was done in the include MV45AFZZ but i do not know much technical details.
What i know is, this include comes much before the SAVE comes.
Also if you can write the logic to check the BLOCK STATUS from customer master and if it has a value, then fill the same in the respective field in sales order, system might throw that blocking reason.
If there is no reason, system will put the the default blocking reason from the sales order.
Better you post the issue in ABAP forum.
You might get more inputs there.
Check and revert back.
Thanks & Regards
Hegal K Charles -
How to find out the Tcodes for the exits
Hi All,
how to find out the Tcodes for the exits. i have a list of exits (customer, user, badi ). i need to find out what are the Tcode affected by this exits.
Customer Exits: EXIT_RFEBBU10_001
EXIT_RFEKA400_001
EXIT_RFFOEXIT_100
User-Exits: USEREXIT_DELETE_DOCUMENT
USEREXIT_FIELD_MODIFICATION
USEREXIT_MOVE_FIELD_TO_VBAK
USEREXIT_PRICING_PREPARE_TKOMP
BADI: CUSTOMER_ADD_DATA_CS
HISTORICAL_VALUES
MD_ADD_ELEMENTS
MD_CHANGE_MRP_DATA
MD_PIR_FLEX_CONS
MD_PLDORD_POST
ME_REQ_POSTED
NOTIF_EVENT_SAVE
Can anyone help on this <urgency factor removed>.
Regards
Ksihore
Edited by: Suhas Saha on Feb 20, 2012 12:58 PMi have just started reading about all these-user exits ,customer exits etc.
i have read somewhere that:call to customer exits are triggered by function modules exits.
the structure of function modules are like this:
EXIT_RFEBBU10_001
MEANS
Keyword EXIT followed by program name fllowed by three digits.
and the call is like this:
call customer function 0001.
From above we can conclude that this customer exit must be used in program RFEBBU10.
GOTO SE38 andenter prog name RFEBBU10.check for above function module.
for the rest i stick to the same method for user exits and BADI that we can findthe corresponding TCODES
using Where used lists.
please Tell me if i m wrong! -
Auto update of Valid to and Payment Terms field
Hi,
I have a scenario, where based on the Net value of the document, Valid To date of the Quotation and Payment Terms should auto populate.
Ex: If Net value is above 5lks, then payment terms should be 100% with in 20 days from current day and valid to date is also 20 days from now. Like wise, if Net value is below 5lks, then payment terms and valid to date should be 10 days.
Thanks for response in advance.
VamHi,
Please check if the following user exits help.
USEREXIT_MOVE_FIELD_TO_VBAK
Use this user exit to assign values to new fields at sales document header level. It is described in the section "Transfer of the customer master fields into the sales document".
The user exit is called up at the end of the FORM routine VBAK_FUELLEN.
USEREXIT_MOVE_FIELD_TO_VBKD
Use this user exit to assign values to new fields for business data of the sales document. It is described in the section "Copy customer master fields into sales document" .
The user exit is called up at the end of the FORM routine VBKD_FUELLEN.
Regards,
P Gomatheeswaran -
How can i limit the quantity in sales order
Dear sd gurus
how can i restrict no of items in sales order? ex:sales
order has been created for 10 items and all the 10 items
quantity should be 72 not more than that and system should
not allow to enter the quantity.where we can configure for
this.
thank s
venu
Please search the forums before posting - see [rules of engagement|https://wiki.sdn.sap.com/wiki/display/HOME/RulesofEngagement]. You have been warned before about this.
Edited by: Ian Kehoe on Mar 5, 2012 5:31 PMHello,
I believe your requirement is possible in SAP Standard.
You will have to go for ABAP Development & apply a Exit in Sales Order.
You can use Program MV45AFZZ & apply ehtier userexit_field_modification or userexit_move_field_to_vbak or userexit_read_document or userexit_save_document
Hope this helps,
Thanks,
Jignesh Mehta -
Changing proposed delivery date in sales order for one specific sales org
Hi All,
I want to change proposed delivery date in sales order automatically for one specific sales org only without changing lead time in VOV8.
For that can I use MV45AFZZ. But it is asking access key to make changes. Is there any other user exit for the same. And how does exactly change it.
Thanks in advanced.
Points will be awarded.
Regards,EXIT_SAPFV45E_001 has nothing to do with this - it is meant to update the purchase order from a sales order. It might not even be triggered if the sales order has no link to a purchase order.
USEREXIT_SAVE_DOCUMENT is not really good for this either, because the delivery date has to be changed before that. If memory serves, it also influences the schedule lines and probably the ATP check and such. I would strongly advise against it. One of the other routines in MV45AFZZ should do just fine, USEREXIT_MOVE_FIELD_TO_VBAK for example. -
How to block sales order against quotation
Plz answer immediatly because we have to do golive in coming week.
Hi Experts,
I created a quotation using VA21 and a sales order using VA01. It includes certain items and related to every item there is a fixed quantity. eg -- Rice(10000 KG), Sugar(500 KG) and Oil(2000 Lit). User can order the full quantity at a time or in part. What I want to do is, if we create Sales Order in reference to this quotation, it should give a message whenever any particular quantity limit gets exceeded. e.g. for the same quotation if user orders 200 KG Sugar in first order, 100 KG in the second order and then 250 KG in the third order, then during the entry of third order it will generate a message showing the current limit of that item.
Sales Order Type -- ZSOR, Quotation Type -- Z001.
regards,
rishi/anil
Edited by: Rishi B on Apr 24, 2009 1:23 PMHi,
use the filed vgbel in vbak in MV45AFZZ in USEREXIT_MOVE_FIELD_TO_VBAK and get the quantity against that quotation .....and check the qunatity in USEREXIT_MOVE_FIELD_TO_VBAP where the values of the line item will be held in XVBAP table....and throw error message.....
Thanks,
Shailaja Ainala. -
Update of shipping condition in a sales order
Hi All!
I have a sales order where the sold-to-party and the ship-to-party are the same (from the customer master data). At header level, in the shipment condition field of the Shipping tab, I have the value from the Sold-to-party master data. If i chose a different Sold-to-party partner, I want that the value of the shipment condition to be updated automatically by the system (from the Ship-to-party master data). The system only issues the message:
"Check route for Ship-to party 0000025237 in document header. (Message no. VPD 008)".
Can I do it from Customizing or should I use a user exit for this?
Thanks for your help.
Florina C.Thanks Vijay.
I used SAPMV45A - MV45AFZZ - FORM USEREXIT_MOVE_FIELD_TO_VBAK
...just in case someone needs this information.
Florina C
Message was edited by: Florina C (some grammar issue)
Florina Cheta -
How to exclude sales office for combination sales order type/division?
Hi experts,
I would appreciate if you could advise: How to exclude sales office for combination sales order type/division in ECC 6.0 ?Hi
Standard SAP functionality would not be able to cater to this. Ideally create a Z table with sales order type and sales office combination. Put in entries for combinations that are allowed. In Sales order program MV45AFZZ use the exit USEREXIT_MOVE_FIELD_TO_VBAK. In this exit write down the logic passing the sales office determined and the order type and check if the entry is there or not. If the entry is there then it should go on to the next step. If it does not then pass an error message. You need to use the help of your ABAP er for this.
Thanks
Indranil
Maybe you are looking for
-
Is the Apple program always this convoluted every time something new is rolled out to roll over someone?
-
I am new to this area. Here I have 3 question: 1. How I can download one of the BPH from BPR? So that it can be seen in the Project Admin-> Scope-> Template selection. 2. I have a created a BPH in form of xls fromat, how we can upload to the system s
-
Error when using MySQL view that has name greater than 30 characters
Hi, am loading MySQL data to an Oracle table using an ODI 11g Interface. The interface errors when the name of the MySQL view exceeds 30 characters. A "view not found" error is encountered. Is there any work around when using source datastores (MySQL
-
How to get the total bytes read by windows media palyer?
Using the wmp activeX control to play an avi format file, and using cvi's activeX tools to generate a wmp control. It can play. I'd like to know which method can get the bytes that read by wmp? Thanks.
-
Applications Aren't Opening even though I bought Creative Cloud Membership
I purchased the student version of Creative Cloud on my macbook pro back in December of 2014, I guess I had downloaded trial versions of the applications, now when I open the applications it tells me my "Trial Has Expired" and to either License The