Custom field not updating in MARC table by mm01/mm02/mm03
Hi,
I have created a sub screen in Plant storage 2 of MM01 tcode with a custom field. The field is visible in the screen but the value is not getting updated in the MARC table. We can update the MARA table through the exit of MPA00001 but there is no option for updating the MARC table. Please let me know if there are any options.
HI Geeta,
Chek this
DATA: H_ZE1MARCM LIKE ZE1MARCM.
IF F_CUST_SEGMENT-SEGNAM EQ 'ZE1MARCM'.
H_ZE1MARCM = F_CUST_SEGMENT-SDATA.
IF H_ZE1MARCM-ZMYFIELD = C_NODATA.
CLEAR H_ZE1MARCM-ZMYFIELD.
ELSE.
IF H_ZE1MARCM-ZMYFIELD IS INITIAL.
RES_FIELDS-FELDNAME = 'MARC-ZMYFIELD'.
APPEND RES_FIELDS.
ENDIF.
ENDIF.
F_MARC_UEB-ZMYFIELD = H_ZE1MARCM-ZMYFIELD.
ENDIF.
Given By Lars,
Regards,
Madhu.
Similar Messages
-
Dear Experts,
From MARA table field STAWN (Comm./imp. code EU ) is not updating in MARC table field STAWN (Comm./imp. code EU ) by MM02 Transaction
Is there any SAP standard functionality to over come above issue or needed ABAP coding for the same ????
Regards
HanumantDear All,
Thanks for your reply
I tried to update the the field after adding plant and other detail actually that field will be gray mode (display) and cannot update
my question i want to update MARC_STAWN field (Forign trade import) for my existing all material , those material MARA_STAWN (basic data 3 ) is also blank but system is allowing me to update in MARA_STAWN (basic data 3) but system will not update to MARC_STAWN (Forign trade import) field.
What is the best method to Coppy all MARA Stawn fields to the MARC Stawn field.
Regards
Hanumant. -
Custom field not updating in screen of Purchase Order
Hi,
We have customer field in header and item of purchase order. If we enter value in Header, this should automatically update in item also. We have made the changes, but issue is "If i enter the value in Header and save the purcahse Order with out enter any enter button, it is not showing the value in item. the value updated the table EKPO, but in the screen it is not showing. If come back to Purcahse Order, the value is updated in screens. "
Is that any way to solve this issue?HI
you could try BADI ME_PROCESS_PO_CUST Method Process_Header.
you can get_data and set_data
read header data
gs_header = im_header->get_data( ).
CALL METHOD im_header->get_items
RECEIVING
re_items = l_items.
LOOP AT l_items INTO l_single.
CALL METHOD l_single-item->get_data
RECEIVING
re_data = gs_lines.
After that you should use Method set_data.
regards
Alex -
PARTNERCHA custom field not updateing
Hello,
I am using the PARTNERCHA migObj to update some custom fields in the BUT000 table. If I change a standard field like 'FIRST_NAME' it is successfully updated, but when I try to change a custom field the change is ignored.
Can someone please shed some light on this problem?!
Thanks in advance, Igor.Hello Igor,
custom fields have to be treated in own customer-specific events, such as, DINP2 event. You will need to check with the responsible functional team to see how the DINP2 event was specified and developed.
Cheers,
Fritz -
Custom fields not getting updated in Mass Maintenance-MM17
Hi,
I have created a custom field in MARC table and the data is getting updated to the MARC table through MM01/MM02 but it is not getting updated by MM17. I have checked the notes 44410, 576160, 414020 and 116311. I have done the following changes as per the sap notes.
1. Created a custom segment ZE1MARCM by copying the standard segment E1MARCM and added the custom field in that
segment.
2. I have extended the IDOC 'MATMAS03' and added the custom segment ZE1MARCM to E1MARAM.
3. Created a new entry in we82 and provided the extension type 'ZMATMAS03' and release '701'.
4. Adjusted the partner profile in we20 for matmas with port and providing the extension idoc type.
5. Added the custom field in the table MASSFLDLST.
6. Implemented the code in BADI 'MG_MASS_NEWSEG' and exits 'EXIT_SAPLMV01_002' , 'EXIT_SAPLMV02_002' as per the
sap notes.
The custom field is not getting updated through mass maintenance. Please let me know if i have missed anything?
Thanks,
GeetaI had this same question several years ago. Please check my answer at Initialize MARC Custom Fields Using MM17 Does Not Work
-
Add a custom-field in the table MARC and manage it in MM01/MM02/MM03
Good day to all of you!
I have this task: To add a custom-field to the table MARC. This custom-field will be managed through the MM01/MM02/MM03 transaction as follows:
In the Basic Data 1 or Basic Data 2 the custom-field data will be added. Let's say the field is MATNR OBSOLETE.
I have searched and implemented the things in customizing: Made a copy of function group MGD1, added the field on the screen.
MY PROBLEM! How to manage it??? When the user enters MM01/MM02/MM03 and update this field, the field should be updated in MARC.
1. I am not sure that this custom-field should be on Basic Data1 or Basic Data2.They want it at plant level.
2. How to manage the data transfer from SAP Standard Program and my Custom Function Group.
PLs: Do not paste me link to sap technical site with that example, because there takes the custom fields and UPDATE a CUSTOM TABLE. I need to update MARC!
All the documentations i have read until now tell you how to add the field, ONLY the first part of the SOLUTION.
Any help, pls?
Good day and thank you!Hi Alex,
In which way you are trying to update that custom filed. Have you written any logic in EXITS/BADIS?
http://pavelgk.pbworks.com/f/6729224-Implement-Screen-Exit-for-MM01-Adding-New-Fields-in-Screen.pdf
and
Just read the OSS note mentioned earlier.
Symptom
You want to integrate customer-specific fields in material master maintenance.
Other terms
SAPLMGMM, RMDATIND, ALE, CI_MMH1, EXIT_SAPLMGMU_001
Solution
To add customer-specific fields to an existing material master table (such as MARA or MARC) , you can proceed as follows as of Release 3.0C:
1. Use an append structure to add the fields to the required table in the Dictionary (this is not a modification; for details, see the SAP document "ABAP/4 Dictionary"). In Release 3.x, the length of the field names must be the same as the standard five character fields. This is necessary because of dynamic assignments. As of Release 4.0A, the lengths of the field names can be longer than five characters. If the changes of the fields should be recorded in the change document and taken into account during ALE distribution, set the 'Change document-relevant' indicator for the corresponding data elements. For table MARA in Release 3.x, you must also enhance the database view MARU because the database changes are carried out using this view. This small modification is no longer necessary as of Release 4.0A because the database view MARU is enhanced automatically when you enhance table MARA or the include EMARA (which is the data part of table MARA).
2. Enhancing online maintenance in customized material master maintenance:
Define a subscreen with your customer-specific fields in a customer-specific function group created as a copy of the standard function group MGD1.
In Customizing, assign this subscreen to a maintenance screen using the "Copy customized material master" function. For details, see the Implementation Guide (IMG). As of Release 4.0A, program COPYMGD1 is available. You can use this program to create customer-specific function groups as required. This program is also incorporated in the Customizing function 'Configure customized material master'. Ensure that each field of the subscreen has a field statement in the flow logic, otherwise the data is not transported correctly. You can use subscreen SAPLMGD1 2002 as an example.
If you want these fields to be subject to standard field selection, you must add new entries for them to the central field table for material master maintenance (T130F):
Application examples for standard field selection:
The field is mandatory and is to be flagged with a "?".
The field belongs exclusively to the purchasing user department. Purchasing data and MRP data are both contained on one screen. However, the MRP controller is not to see the purchasing data.
The following data is required for each field:
a) Field name (T130F-FNAME)
b) Field selection group (T130F-FGRUP)
Here, you should use a standard field group if the customer field is subject to the same field selection as the standard fields of the standard field group. If it is not, use a customer-specific field group.
You must then check and, if necessary, modify the attribute of the field group using the function "Maintain field selection for data screens" in Customizing under "Logistics Basic Data -> Material Master".
Field groups 111 through 120 that are not used in the standard system are reserved as customer-specific field groups. As of Release 3.0F, additional customer field groups are available. (For details, see the IMG).
c) Maintenance status (T130F-PSTAT)
List of the user departments that may maintain the field. You can display possible values by using the input help for the maintenance status field in the Customizing activity "Configure Material Master" when maintaining logical screens.
d) Reference (T130F-KZREF)
This indicator must be set if the field from the reference material should be proposed during creation with reference.
Note: You cannot yet use Customizing to enhance table T130F; you can use only transaction SE16 (Data Browser) or transaction SM31. Future releases will include a separate Customizing function for maintaining customer-specific fields. See Note 306966. By implementing this note you can add entries to table T130F within Customizing. This type of maintenance is possible as of Release 4.5B.
You may change the entries for standard fields only with regard to the reference data and field selection group. Changing other data for standard fields constitutes a modification. Therefore, you cannot use the Customizing function "Assign Fields to Field Groups" to change this data.
In addition, you must not add new standard fields to table T130F.
3. If you want to maintain customer-specific fields using data transfer by direct input or via ALE distribution, proceed as follows:
Add the fields to central field table T130F (see above).
Add the customer-specific fields to the data structures for the data transfer (for example, BMMH1 for the main data).
Also, add the customer-specific fields to the tables in which the incorrect data is stored during direct input. These tables have the same name as the corresponding master data table and also have the suffix _TMP.
For example: If you add customer-specific fields to table MARA, you should add the same fields to table MARA_TMP.
If you use ALE, you must also add fields to the IDoc. To process enhanced IDocs, you can use enhancement MGV00001 with customer exit EXIT_SAPLMV01_002 for creating the IDocs and customer exit EXIT_SAPLMV02_002 for posting the IDocs.
Prior to Release 3.0E, enhancing structure BMMH1 constitutes a modification. In this case, you must add the new fields tot the end of the structure before the last field (SENDE = record end indicator).
As of Release 3.0F, structure BMMH1 contains the customer include CI_MMH1, which is part of the enhancement MGA0001. Here, you must proceed as follows:
a) Add the customer-specific fields to include CI_MMH1.
The names of the fields in CI_MMH1 must be identical to those of the corresponding fields in material master tables MARA, MARC and so on.
Important: The fields must be CHAR type fields. Therefore, create CHAR type data elements whose lengths are identical to the output length of your fields in table MARA and so on. Use these data elements in include CI_MMH1, but use the field names from table MARA and so on.
b) Activate include CI_MMH1.
c) If you have not used customer structure ZMMH1 before, create it as a copy of structure BMMH1 and delete the standard fields that you do not require. You are not permitted to delete field STYPE and include CI_MMH1 when doing this. If you have already used structure ZMMH1, add include CI_MMH1 to it.
d) Activate structure ZMMH1. This also adds the customer-specific fields to ZMMH1.
Run program RMDATING. This program generates routines which are supplied to your customer-specific fields from the input file. As of Release 4.5A, you also need to activate the routines/function modules generated by program RMDATING (especially, the MAT_MOVE_BMMH1_XXXX modules). Details about this subject (especially the procedure when using customer structure ZMMH1) are described in the IMG for transferring the material data under item 'Maintain Transfer Structure'. Also, check the declaration of structure WA in program RMMMBIMC to see whether it is declared with sufficient length. If necessary, enhance the declaration (for the time being, this still constitutes a minor modification).
In addition, lengthen domain DI_DATA with CHAR 5000. As of Release 3.1H, this has already been done.
Important: When using customer-specific fields, you can use only structure ZMMH1 to transfer the data. Otherwise, after the next SAP upgrade which contains new standard fields in structure BMMH1, the input files no longer match. If you want these new standard fields to be transferred, add them after your customer-specific fields (the order of the fields in structure ZMMH1 does not need to be the same as the order of the fields in BMMH1).
If you want foreign key dependencies or fixed domain values to be checked, or another check for a customer field, this is possible up to and including Release 3.0D only by modifying the corresponding check function modules. As of Release 3.0E, you can use function exit EXIT_SAPLMGMU_001 (SAP enhancement MGA00001) for these purposes.
If you want to use engineering change management to schedule future changes for your customer-specific fields or you want to use the 'Display at Key Date' function, execute program GENERATE in addition. This program generates the necessary assignments for interpreting the change documents. With regard to engineering change management, you must read Notes 60281, 60973, and 48962.
To date, it is not possible to integrate customer-specific tables in material master maintenance without making a modification. However, you can create customer-specific development objects containing the essential additional logic. You can then integrate these development objects in your system as part of only a minor modification.
check this link. It may helps you to solve your issue.
Thanks
Sravan -
Custom field not getting added into MSEG table throuhBADI MB_MIGO_BADI
i have created a new tab in MIGO transaction and created a zfield called ZZcert . i have also created one append structure in MSEG table with field name ZZCERT .
i have created new tab for migo using BADI MB_MIGO_BADI . when i enter value in ZZCERT in MIGO transaction , it is not updated in MSEG table . but in debugging mode im able to see the value in (SAPLMIGO)MSEG . i have tried the option of using Field symbols also . but it didnt work .
I have searched in the forum for suitable answers.
can anybody guide me how to update the ZZCERT value into MSEG table ??
thanks in advance
pavanHi,
if i am not wrong these are standard transactions..when you have created a screen then for your field you can click on "get from dictionary" and the map your field(drag a field from MSEG directly on to the custom field on screen) and the you have to activate the screen....i think thats the only thing you need to do so as to update the field value in database...
or else as sugegsted by the post above you need to use BDC recording to update the databse table MSEG.
Abhijeet. -
Vendor field not updated in CRM pricing condition table
Hi,
We have maintained condition table with Material and Vendor fields in ECC and table is active
After replicating this table from ECC to CRM, vendor field not updated in table and it is inactive.
There is any mapping settings required to update vendor field in CRM table from ECC.
Please help me out to solve this issue
Regards
kishore kumarhi, the data field of vendor is a standard one or custimizing one?
I remeber there is a data mapping setting in CRM, for condition field. If you want to mapping a ERP standard field to a CRM custmizing one, you need to setting your rule in it. Maybe you can find it in SM30 view.
I can't login a CRM system now, so sorry for not offer your the view name. -
Reference field is not updating in VBAK table
Hi Experts,
I am using SD_SALESDOCUMENT_CREATE bapi for Credit Memo Creation .
but the field XBLNR is not updating in the table vbak.
Kindly help me to sort out this issue.
Thanks in advance.
In which field i should pass the value to update in the table vbak.
Regards,
Ajay.
Edited by: srinivasan12345 on Nov 14, 2011 9:21 AMHi,
follow this,may help u..
Re: Credit Memo Creation
thanks & regards. -
Hi,
I have created an append on the tables RBKP_V and RBKP.
I am parking a vendor invoice in transaction MIR7.
I'm using the BADI BADI_FDCB_SUBBAS04 to enhance MIR7 transaction. I have followed the BADI documentation.
When I click on 'Save as completed' button :
The customer fields are not updated in the table RBKP.
Whats the solution ?
Best Regards,
Ramesh.SHi, In my opinion, some of Custom fields should move to corresponding field in user exit to update to table.
Example . you have add a field that zzabb into vbak , you should add code like move struct-zzabb to xvbak-zzabb.
**"struct" is from screen field you be inputed -
Hi,
The business requirement is as follow:
1.Financial document posted via billing document in Sales & Distribution.
2.In Financial reports (FBL3N and FAGLL03), both customer line and revenue lines should display billing document no., billing item no., sales document no. and sale line item no. so as to ensure quick and proper financial reporting. This also assists in reconciling FI and COPA data when there are discrepancies due to incorrect sign or amount.
3.In Financial reports, in the revenue line items, the quantities transferred to FI during posting should be based on the Base Unit of Measure instead of the Sales Unit of Measure. This ensures that the UoM from cost of sales postings to FI during PGI (in Base UoM) can be matched with the revenue postings to FI during Billing.
PROPOSED SOLUTION
I have found a solution that the SAP User Exits 'EXIT_SAPLV60B_002' and 'EXIT_SAPLV60B_008' can be created and modified in order to populate these fiields.
EXIT_SAPLV60B_002
In this Exit, Sales document (AUBEL) and Sales Document Item (AUPOS) fields are directly populated from the CVBRP structure into the final structure of XACCIT .
For multiple line-items in the same sales document, the last item number will be populated in the AUPOS field.
This is fine
EXIT_SAPLV60B_008
In this Exit, Sales Document (AUBEL), Sales Document Item (AUPOS), Billing quantity in stockkeeping unit (FKLMG) and Base Unit of Measure (MEINS) are populated from CVBRP into the final structure of XACCIT. Billing Document (VBELN), Payer (KUNRG) and Sold-to party(KUNAG) are obtained from CVBRK. These fields automatically updating the BSEG table.
ISSUE:
Now, the issue is coming for the fields FAGLFLEXA-MSL and FAGLFLEXA-RUNIT which are also needed to be updated for this requirement with the XACCIT-FKLMG (Billing Qty in SKU stock keeping unit) and XACCIT-MEINS (Base UoM) respectively but I am unable to find any place where from I can update the FAGLFLEXA tables.
Please help me in this regard and it is a high priority issue. All help will be very mch appreciable.
Regards,
SubhajitHi,
Thanks for the update. I will check whether the things can be done or not.
Just wanted to check one more thing that I need to populate FAGLFLEXA-MSL and FAGLFLEXA-RUNIT while I am saving Billing document.
The process we are applying is that we are creating a Sales Order and once it is created we are creating a Delivery from it. Once the delivery is created we are creating the Transfer Order and confirm it. Once this is done, we go to and save the billing document. While this billing document is saved the respective fields are updated from there.
I have updated the respective BSEG fields by updating the particular structure but I am unable to update the FAGLFLEXA table fields. I had to update FAGLFLEXA-MSL and FAGLFLEXA-RUNIT fields from XACCIT structure. But I am unable to find any structure or stack values through which I will be able to update it.
Anyone know any exit or anything which can do that, in that case I can try and change some data there to get the desired functionality.
Regards,
Subhajit -
Folio number not updated in the table RG23D
Hi all,
Folio number not updated in the table RG23D when I create depot excise invoice using batch program J_1IJCHK. Can any one help me by providing rootcause and solution.
Thanks in advance.
Regards
BalajiSee can i know in which version u r working,Because if u r in 4.6c there will be some problem.Some patches will be there.
Try this program i have send and assign excise duty
REPORT YJ_1IJCHK MESSAGE-ID 8I.
TABLES : J_1IEXCHDR, "excise header
J_1IEXCDTL, "excise detail
J_1IRG23D , "RG23D register
J_1IWRKCUS, "Plant level customisation
J_1IREGSET, "register set customisation
J_1IEXCDEF, "Tax default information
VBFA, "sales document flow
LIKP, "delivery header
LIPS, "delivery detail
T005, "country information
KUAGV, "sold-to-party information
KUWEV, "ship-to-party information
KNA1, "customer master
VBPA, "sales document partner
TVKO, "sales organisation to company co
VBUK, "delivery information
MAKT, "material description
T001. "company code
selection-screen begin of block delivery_details no intervals.
PARAMETERS: FCODE TYPE C,
DELIVERY LIKE LIPS-VBELN,
EXCGROUP LIKE J_1IEXCHDR-EXGRP,
SERGROUP LIKE J_1IEXCHDR-SRGRP.
TYPES : BEGIN OF RG23D.
INCLUDE STRUCTURE J_1IRG23D.
TYPES: MENGR LIKE J_1IEXCDTL-MENGR, "remaining quantity
MENGA LIKE J_1IEXCDTL-MENGA, "quantity actually rec
ADDBED LIKE J_1IEXCDTL-ADDBED,
ADDSED LIKE J_1IEXCDTL-ADDSED,
ADDAED LIKE J_1IEXCDTL-ADDAED,
END OF RG23D.
DATA : BEGIN OF J1IJ300,
BUKRS LIKE TVKO-BUKRS,
WERKS LIKE LIPS-WERKS,
REGID LIKE J_1IREGSET-J_1IREGID,
WAERS LIKE T001-WAERS,
SHIPFROM_IND TYPE C, " Added 10/12/1998
RG23D_SERIALNO TYPE C, " Added 10/12/1998
END OF J1IJ300.
DATA : TRNTYP(4) TYPE C,
CONDT-NAME(3) TYPE C,
TOTAL_LRG23D LIKE LIPS-LFIMG,
ALLOC_LRG23D LIKE LIPS-LFIMG,
SHIPFROM_IND LIKE J_1IEXCHDR-STATUS,
RG23D_SERIALNO LIKE J_1IEXCHDR-STATUS.
DATA : BEGIN OF XLIPS OCCURS 10,
internal table to store the delivery item information
VBELN LIKE LIPS-VBELN,
POSNR LIKE LIPS-POSNR,
MATNR LIKE LIPS-MATNR,
MAKTX LIKE MAKT-MAKTX,
WERKS LIKE LIPS-WERKS,
LGORT LIKE LIPS-LGORT,
CHARG LIKE LIPS-CHARG,
LFIMG LIKE LIPS-LFIMG,
MEINS LIKE LIPS-MEINS,
BED LIKE J_1IRG23D-EXBED,
SED LIKE J_1IRG23D-EXSED,
AED LIKE J_1IRG23D-EXAED,
CUR LIKE J_1IRG23D-EXCUR,
SELFLAG TYPE C , "T=excise invoice selected
INDEX LIKE SY-TABIX, "index in the table
FLG TYPE C. "item selection
DATA : END OF XLIPS.
DATA : CRG23D TYPE RG23D OCCURS 30 WITH HEADER LINE.
contains all rg23d entries for the document
DATA : LRG23D TYPE RG23D OCCURS 30 WITH HEADER LINE.
contains item rg23d entries
DATA : BEGIN OF Z_1IRG23D OCCURS 30.
stores the data to be updated
INCLUDE STRUCTURE J_1IRG23D.
DATA : END OF Z_1IRG23D.
DATA : BEGIN OF EXCINV OCCURS 30.
factory inovoics selected for item
INCLUDE STRUCTURE J_1IEXCDTL.
DATA : END OF EXCINV.
DATA : BEGIN OF ASSIGNED_EXCINV OCCURS 30.
INCLUDE STRUCTURE J_1IEXCDTL.
DATA : END OF ASSIGNED_EXCINV.
DATA : A_INDEX LIKE SYST-TABIX.
DATA : BEGIN OF LOCK_TABLE OCCURS 10,
table containing plant-material combination and status of the lock
WERKS LIKE J_1IEXCDTL-WERKS,
MATNR LIKE J_1IEXCDTL-MATNR,
STATUS TYPE C, "LOCKED/UNLOCKED
END OF LOCK_TABLE.
DATA : BEGIN OF LOCKTAB OCCURS 0,
TRNTYP LIKE J_1IEXCDTL-TRNTYP,
DOCNO LIKE J_1IEXCDTL-DOCNO,
DOCYR LIKE J_1IEXCDTL-DOCYR,
ZEILE LIKE J_1IEXCDTL-ZEILE,
END OF LOCKTAB.
DATA :
CRG23D-CTR TYPE I, "Line count of crg23d table
SHIPFROM LIKE J_1IRG23D-SHIPFROM,
FOLIO LIKE J_1IRG23D-FOLIO,
SERIALNO LIKE J_1IRG23D-SERIALNO,
DEPEXNUM LIKE J_1IRG23D-DEPEXNUM,
DEPEXYEAR LIKE J_1IRG23D-DEPEXYEAR.
CONSTANTS :
BED LIKE CONDT-NAME VALUE 'BED',
AED LIKE CONDT-NAME VALUE 'AED',
SED LIKE CONDT-NAME VALUE 'SED',
CES LIKE CONDT-NAME VALUE 'CES',
LOCKED TYPE C VALUE '1',
UNLOCKED TYPE C VALUE '2'.
AT SELECTION-SCREEN.
PERFORM CHECK_VBELN_INPUT.
IF FCODE = 'S'.
PERFORM DELIVERY_START_USER_EXIT.
PERFORM READ_DELIVERY_HEADER.
PERFORM GET_COMP_CODE.
PERFORM READ_CUSTOMISATION.
PERFORM GET_ITEM_INFO.
PERFORM LOCKING.
PERFORM RG23D_SELECTION.
PERFORM SAVE_DOCUMENT.
MESSAGE I000 WITH 'Selection Complete for Delivery ' DELIVERY.
ELSEIF FCODE = 'V'.
PERFORM GET_COMP_CODE.
PERFORM READ_CUSTOMISATION.
PERFORM GET_ITEM_INFO.
PERFORM LOCKING.
PERFORM UPDATE_DOCUMENT.
MESSAGE I000 WITH 'Verfiy/Post Complete for Delivery ' DELIVERY.
ENDIF.
FORM CHECK_VBELN_INPUT.
Validate Function Code
IF NOT ( FCODE = 'S' OR FCODE = 'V' ).
MESSAGE E000 WITH 'Valid Functions are S/V - Select/Verify Post'.
ENDIF.
IF DELIVERY IS INITIAL.
MESSAGE E000 WITH 'Delivery number cannot be initial'.
ENDIF.
check if goods issue done for the delivery
SELECT SINGLE WBSTK INTO VBUK-WBSTK
FROM VBUK
WHERE VBELN = DELIVERY.
IF SY-SUBRC = 0.
IF VBUK-WBSTK <> 'C' AND FCODE = 'V'.
MESSAGE W339 WITH DELIVERY.
ENDIF.
ELSE.
MESSAGE E000 WITH 'Invalid Delivery'.
ENDIF.
if in select mode check if excise invoice already selected for delive
SELECT SINGLE * FROM J_1IRG23D
WHERE VBELN = DELIVERY.
IF FCODE = 'S'.
IF SY-SUBRC = 0.
MESSAGE E325 WITH DELIVERY.
ENDIF.
ELSEIF FCODE = 'V'.
IF SY-SUBRC NE 0.
MESSAGE E000 WITH 'Selection not over for ' DELIVERY.
ELSEIF J_1IRG23D-STATUS = 'P'.
MESSAGE E000 WITH 'Record Already Posted '.
ENDIF.
ENDIF.
CLEAR J_1IRG23D.
ENDFORM. " CHECK_VBELN_INPUT
FORM READ_DELIVERY_HEADER.
SELECT SINGLE * FROM LIKP
WHERE VBELN = DELIVERY.
get the sold-to-party
CLEAR: KUAGV, KUWEV.
SELECT SINGLE KUNNR NAME1 LAND1
FROM KNA1 INTO (KUAGV-KUNNR,KUAGV-NAME1,KUAGV-LAND1)
WHERE KUNNR = LIKP-KUNAG.
get the ship-to-party
SELECT SINGLE KUNNR LAND1 NAME1
FROM KNA1 INTO (KUWEV-KUNNR,KUWEV-LAND1,KUWEV-NAME1)
WHERE KUNNR = LIKP-KUNNR.
ENDFORM. " READ_DELIVERY_HEADER
FORM GET_COMP_CODE.
get the company code of the document from the sales organisation
CLEAR TVKO-BUKRS.
SELECT SINGLE BUKRS FROM TVKO INTO TVKO-BUKRS
WHERE VKORG = LIKP-VKORG.
J1IJ300-BUKRS = TVKO-BUKRS.
SELECT SINGLE WAERS FROM T001 INTO J1IJ300-WAERS
WHERE BUKRS = J1IJ300-BUKRS.
ENDFORM. " GET_COMP_CODE
FORM READ_CUSTOMISATION.
SELECT SINGLE WERKS INTO J1IJ300-WERKS
FROM LIPS
WHERE VBELN = DELIVERY.
Plant level customisation
SELECT SINGLE * FROM J_1IWRKCUS
WHERE J_1IWERKS = J1IJ300-WERKS .
IF SY-SUBRC <> 0.
MESSAGE E303 WITH 'plant' J1IJ300-WERKS 'J_1IWRKCUS'.
ENDIF.
IF J_1IWRKCUS-J_1IDEPOT IS INITIAL.
plant is defined as factory
MESSAGE E322 WITH J1IJ300-WERKS.
ENDIF.
J1IJ300-REGID = J_1IWRKCUS-J_1IREGID.
TRNTYP = 'DLDO'.
SELECT SINGLE * FROM J_1IREGSET
WHERE J_1IREGID = J1IJ300-REGID.
IF SY-SUBRC <> 0.
MESSAGE E303 WITH 'Register id' J1IJ300-REGID 'J_1IREGSET'.
ENDIF.
ENDFORM. " READ_CUSTOMISATION
*& Form GET_ITEM_INFO
text *
--> p1 text
<-- p2 text
FORM GET_ITEM_INFO.
REFRESH : CRG23D, LRG23D, EXCINV, XLIPS.
PERFORM READ_DELIVERY_ITEM.
ENDFORM. " GET_ITEM_INFO
*& Form READ_DELIVERY_ITEM
text *
--> p1 text
<-- p2 text
FORM READ_DELIVERY_ITEM.
DATA : CNT LIKE SY-TABIX.
CLEAR CNT.
REFRESH XLIPS.
SELECT * FROM LIPS
WHERE VBELN = DELIVERY.
read the delivery item
perform plant checking only if in create mode
IF LIPS-WERKS <> J1IJ300-WERKS.
plant is different from that of the first item
SELECT SINGLE J_1IREGID INTO J_1IWRKCUS-J_1IREGID
FROM J_1IWRKCUS
WHERE J_1IWERKS = LIPS-WERKS.
IF SY-SUBRC <> 0.
MESSAGE E303 WITH 'plant' LIPS-WERKS 'J_1IWRKCUS'.
ENDIF.
IF J_1IWRKCUS-J_1IREGID <> J1IJ300-REGID.
register id of the two plants are different
MESSAGE E338 WITH DELIVERY.
ENDIF.
ENDIF.
CLEAR XLIPS.
store the item details
XLIPS-VBELN = LIPS-VBELN.
XLIPS-POSNR = LIPS-POSNR.
XLIPS-MATNR = LIPS-MATNR.
PERFORM GET_MATERIAL_DESC
USING XLIPS-MATNR
XLIPS-MAKTX.
XLIPS-WERKS = LIPS-WERKS.
XLIPS-LGORT = LIPS-LGORT.
XLIPS-CHARG = LIPS-CHARG.
XLIPS-LFIMG = LIPS-LFIMG.
XLIPS-MEINS = LIPS-VRKME. "changed 2.3.98
CLEAR : XLIPS-BED, XLIPS-SED, XLIPS-AED.
XLIPS-CUR = J1IJ300-BUKRS.
CNT = CNT + 1.
XLIPS-INDEX = CNT.
XLIPS-SELFLAG = 'F'.
APPEND XLIPS.
ENDSELECT.
ENDFORM. " READ_DELIVERY_ITEM
*& Form GET_MATERIAL_DESC
text *
--> p1 text
<-- p2 text
FORM GET_MATERIAL_DESC USING MATNR MAKTX.
SELECT SINGLE MAKTX FROM MAKT INTO MAKTX
WHERE MATNR = MATNR
AND SPRAS = 'E' .
ENDFORM. " GET_MATERIAL_DESC
*& Form LOCKING
text *
--> p1 text
<-- p2 text
FORM LOCKING.
REFRESH LOCK_TABLE.
LOOP AT XLIPS.
LOCK_TABLE-WERKS = XLIPS-WERKS.
LOCK_TABLE-MATNR = XLIPS-MATNR.
LOCK_TABLE-STATUS = UNLOCKED.
COLLECT LOCK_TABLE.
ENDLOOP.
PERFORM LOCK_UNLOCK_PLANT_MATERIAL USING LOCKED.
SELECT TRNTYP DOCNO DOCYR ZEILE INTO
(LOCKTAB-TRNTYP,
LOCKTAB-DOCNO,LOCKTAB-DOCYR,
LOCKTAB-ZEILE)
FROM J_1IEXCDTL
WHERE TRNTYP = 'GRPO'
AND WERKS = XLIPS-WERKS
AND LGORT = XLIPS-LGORT
AND MATNR = XLIPS-MATNR
AND CHARG = XLIPS-CHARG.
APPEND LOCKTAB.
ENDSELECT.
*share lock for all excise invoices
LOOP AT LOCKTAB.
CALL FUNCTION 'ENQUEUE_EJ_1IEXDTL'
EXPORTING
MODE_J_1IEXCDTL = 'S'
MANDT = SY-MANDT
TRNTYP = LOCKTAB-TRNTYP
DOCYR = LOCKTAB-DOCYR
DOCNO = LOCKTAB-DOCNO
ZEILE = LOCKTAB-ZEILE
EXCEPTIONS
FOREIGN_LOCK = 1
SYSTEM_FAILURE = 2
OTHERS = 3.
ENDLOOP.
ENDFORM. " LOCKING
*& Form LOCK_UNLOCK_PLANT_MATERIAL
text *
--> p1 text
<-- p2 text
FORM LOCK_UNLOCK_PLANT_MATERIAL USING ACTION.
DATA: __UNAME LIKE SY-UNAME,
__OBJECT LIKE DD25V-VIEWNAME.
DATA : BEGIN OF LOCK_STRUCT,
GRANNAME(10) VALUE 'J1IJ',
ENQMODE VALUE 'E',
MANDT LIKE SY-MANDT,
WERKS LIKE J_1IEXCDTL-WERKS,
MATNR LIKE J_1IEXCDTL-MATNR,
END OF LOCK_STRUCT.
LOCK_STRUCT-MANDT = SY-MANDT.
LOOP AT LOCK_TABLE WHERE STATUS <> ACTION.
perform the locking/unlocking operation only for the items for which
it is not already done
LOCK_STRUCT-WERKS = LOCK_TABLE-WERKS.
LOCK_STRUCT-MATNR = LOCK_TABLE-MATNR.
CALL 'C_ENQUEUE'
ID 'OPCODE' FIELD ACTION
ID 'ENQOBJ' FIELD 'J_1IJ'
ID '01' FIELD LOCK_STRUCT
ID 'COLLISION_UNAME' FIELD __UNAME
ID 'COLLISION_OBJECT' FIELD __OBJECT.
CASE SY-SUBRC.
WHEN 0.
LOCK_TABLE-STATUS = ACTION.
MODIFY LOCK_TABLE.
WHEN 2.
MESSAGE E341 WITH LOCK_TABLE-WERKS LOCK_TABLE-MATNR __UNAME.
WHEN OTHERS.
IF ACTION = LOCKED.
MESSAGE E342 WITH 'locking'
LOCK_TABLE-WERKS LOCK_TABLE-MATNR.
ELSE.
MESSAGE E342 WITH 'unlocking'
LOCK_TABLE-WERKS LOCK_TABLE-MATNR.
ENDIF.
ENDCASE.
ENDLOOP.
ENDFORM. " LOCK_UNLOCK_PLANT_MATERIAL
*& Form RG23D_SELECTION
text *
--> p1 text
<-- p2 text
FORM RG23D_SELECTION.
REFRESH CRG23D.
REFRESH ASSIGNED_EXCINV.
LOOP AT XLIPS.
*write: / xlips-vbeln,xlips-posnr,xlips-matnr, xlips-meins, xlips-lfimg.
REFRESH EXCINV.
CALL FUNCTION 'J_1I6_SELECT_EXCISE_INVOICE_DE'
EXPORTING
BUKRS = J1IJ300-BUKRS
CHARG = XLIPS-CHARG
WERKS = XLIPS-WERKS
EXGRP = EXCGROUP
MATNR = XLIPS-MATNR
QTY_CHECK = 'X'
MULTI = 'X'
NO_DAY_CHECK = 'X'
SHIPFROM = SHIPFROM
LGORT = XLIPS-LGORT
TABLES
EXC_TAB = EXCINV
EXCEPTIONS
OTHERS = 1.
TOTAL_LRG23D = 0.
ALLOC_LRG23D = 0.
SORT EXCINV BY DOCYR DOCNO .
LOOP AT ASSIGNED_EXCINV.
READ TABLE EXCINV WITH KEY DOCYR = ASSIGNED_EXCINV-DOCYR
DOCNO = ASSIGNED_EXCINV-DOCNO
ZEILE = ASSIGNED_EXCINV-ZEILE
BINARY SEARCH.
IF SY-SUBRC = 0.
A_INDEX = SY-TABIX.
EXCINV-MENGR = EXCINV-MENGR - ASSIGNED_EXCINV-MENGR.
MODIFY EXCINV INDEX A_INDEX .
ENDIF.
ENDLOOP.
DELETE EXCINV WHERE MENGR = 0.
total_lrg23d = total balance quantity in the selected excise invoices
alloc_lrg23d = Quantity allocated to a delivery line item,
Allocation continues till
- We have balance quantity in excise invoice selection
- Till total delivery quantity is allocated
LOOP AT EXCINV.
To Force the same shipfrom for all the excise invoices
Shipfrom Ind can be determined in the start user-exit
IF J1IJ300-SHIPFROM_IND = 'Y'.
IF XLIPS-INDEX = 1 AND SY-TABIX = 1.
SHIPFROM = EXCINV-SHIPFROM.
ENDIF.
IF SHIPFROM NE EXCINV-SHIPFROM.
EXCINV-RIND3 = 'X'.
MODIFY EXCINV.
CONTINUE.
ENDIF.
ENDIF.
Allocation
IF XLIPS-LFIMG NE ALLOC_LRG23D.
TOTAL_LRG23D = TOTAL_LRG23D + EXCINV-MENGR.
IF XLIPS-LFIMG > TOTAL_LRG23D.
ALLOC_LRG23D = ALLOC_LRG23D + EXCINV-MENGR.
ELSE.
EXCINV-MENGR = XLIPS-LFIMG - ALLOC_LRG23D.
ALLOC_LRG23D = ALLOC_LRG23D + EXCINV-MENGR.
ENDIF.
ELSE.
EXCINV-RIND3 = 'X'.
ENDIF.
MODIFY EXCINV.
ENDLOOP.
DELETE EXCINV WHERE RIND3 = 'X'.
LOOP AT EXCINV.
MOVE-CORRESPONDING EXCINV TO ASSIGNED_EXCINV.
APPEND ASSIGNED_EXCINV.
CLEAR ASSIGNED_EXCINV.
ENDLOOP.
IF TOTAL_LRG23D < XLIPS-LFIMG.
MESSAGE E000 WITH 'Not enough balance in RG23D ......'.
ENDIF.
Collect all allocated excise invoices to crg23d table
LOOP AT EXCINV.
PERFORM FILL_CRG23D.
APPEND CRG23D.
ENDLOOP.
ENDLOOP.
ENDFORM. " RG23D_SELECTION
*& Form SAVE_DOCUMENT
text *
--> p1 text
<-- p2 text
FORM SAVE_DOCUMENT.
PERFORM PREPARE_RG23D_DATA.
Generate RG23D serial number and Excise Invoice Serial Number
IF J1IJ300-RG23D_SERIALNO = 'Y'.
PERFORM GENERATE_RG23D_SERIAL ON COMMIT.
ENDIF.
PERFORM GENERATE_EXCISE_INV_SERIAL ON COMMIT.
CALL FUNCTION 'J_1I7_USEREXIT_DEPOT_BEF_SAVE'
TABLES
RG23D = Z_1IRG23D
EXCEPTIONS
OTHERS = 1.
PERFORM UPDATE_RG23D ON COMMIT.
PERFORM UPDATE_EXCDTL ON COMMIT.
COMMIT WORK.
PERFORM LOCK_UNLOCK_PLANT_MATERIAL USING UNLOCKED.
PERFORM UNLOCKING.
MESSAGE S333 WITH DELIVERY.
ENDFORM. " SAVE_DOCUMENT
*& Form PREPARE_RG23D_DATA
text *
--> p1 text
<-- p2 text
FORM PREPARE_RG23D_DATA.
REFRESH Z_1IRG23D.
LOOP AT CRG23D WHERE MENGE <> 0.
CLEAR Z_1IRG23D.
Z_1IRG23D = CRG23D.
Z_1IRG23D-USNAM = SY-UNAME.
Z_1IRG23D-CPUDT = SY-DATUM.
Z_1IRG23D-EXGRP = EXCGROUP.
Z_1IRG23D-SRGRP = SERGROUP.
APPEND Z_1IRG23D.
IF CRG23D-ADDAED <> 0 OR CRG23D-ADDSED <> 0 OR CRG23D-ADDAED <> 0 .
additional excise is applicable
make quantity zero for A certificate entries
CLEAR : Z_1IRG23D-MENGE.
get all the A certificates for the excise document item
SELECT * FROM J_1IEXCDTL
TODO : add the transaction type to the selection procedure
WHERE RDOC1 = CRG23D-DOCNO
AND RYEAR1 = CRG23D-DOCYR
AND RITEM1 = CRG23D-ZEILE
AND RIND1 = 'G'.
get the A certificate number
SELECT SINGLE
EXNUM EXYEAR INTO (Z_1IRG23D-EXNUM, Z_1IRG23D-EXYEAR)
FROM J_1IEXCHDR
WHERE TRNTYP = J_1IEXCDTL-TRNTYP
AND DOCYR = J_1IEXCDTL-DOCYR
AND DOCNO = J_1IEXCDTL-DOCNO.
Z_1IRG23D-TRNTYP = J_1IEXCDTL-TRNTYP.
Z_1IRG23D-DOCYR = J_1IEXCDTL-DOCYR.
Z_1IRG23D-DOCNO = J_1IEXCDTL-DOCNO.
Z_1IRG23D-ZEILE = J_1IEXCDTL-ZEILE.
Z_1IRG23D-EXBED = ( J_1IEXCDTL-EXBED * CRG23D-MENGE )
/ CRG23D-MENGA.
Z_1IRG23D-EXSED = ( J_1IEXCDTL-EXSED * CRG23D-MENGE )
/ CRG23D-MENGA.
Z_1IRG23D-EXAED = ( J_1IEXCDTL-EXAED * CRG23D-MENGE )
/ CRG23D-MENGA.
Z_1IRG23D-RG23ASER = J_1IEXCDTL-RG23ASER.
Z_1IRG23D-RG23CSER = J_1IEXCDTL-RG23CSER.
Z_1IRG23D-RGPLASER = J_1IEXCDTL-RGPLASER.
APPEND Z_1IRG23D.
ENDSELECT.
ENDIF.
ENDLOOP.
ENDFORM. " PREPARE_RG23D_DATA
*& Form UPDATE_RG23D
text *
--> p1 text
<-- p2 text
FORM UPDATE_RG23D.
*update the rg23d register
INSERT J_1IRG23D FROM TABLE Z_1IRG23D ACCEPTING DUPLICATE KEYS.
IF SY-SUBRC <> 0.
MESSAGE A308 WITH 'J_1IRG23D'.
ENDIF.
ENDFORM. " UPDATE_RG23D
*& Form UPDATE_EXCDTL
text *
--> p1 text
<-- p2 text
FORM UPDATE_EXCDTL.
LOOP AT CRG23D WHERE MENGE <> 0.
update the remaining quantity in the excise invoice item tables
UPDATE J_1IEXCDTL
SET MENGR = MENGR - CRG23D-MENGE
AENAM = SY-UNAME
AEDAT = SY-DATUM
WHERE TRNTYP = 'GRPO'
AND DOCYR = CRG23D-DOCYR
AND DOCNO = CRG23D-DOCNO
AND ZEILE = CRG23D-ZEILE.
IF SY-SUBRC <> 0.
MESSAGE A308 WITH 'J_1IRG23D'.
ENDIF.
ENDLOOP.
ENDFORM. " UPDATE_EXCDTL
*& Form FILL_CRG23D
text *
--> p1 text
<-- p2 text
FORM FILL_CRG23D.
CRG23D-TRNTYP = EXCINV-TRNTYP.
CRG23D-DOCYR = EXCINV-DOCYR.
CRG23D-DOCNO = EXCINV-DOCNO.
CRG23D-ZEILE = EXCINV-ZEILE.
CRG23D-VBELN = XLIPS-VBELN.
CRG23D-POSNR = XLIPS-POSNR.
CRG23D-EXNUM = EXCINV-EXNUM.
CRG23D-EXYEAR = EXCINV-EXYEAR.
CRG23D-LIFNR = EXCINV-LIFNR.
CRG23D-MATNR = EXCINV-MATNR.
CRG23D-MAKTX = EXCINV-MAKTX.
CRG23D-CHAPID = EXCINV-CHAPID.
CRG23D-MEINS = EXCINV-MENGR_UOM.
CRG23D-WERKS = EXCINV-WERKS.
CRG23D-EXCUR = EXCINV-EXCUR.
CRG23D-RG23ASER = EXCINV-RG23ASER.
CRG23D-RG23CSER = EXCINV-RG23CSER.
CRG23D-RGPLASER = EXCINV-RGPLASER.
CRG23D-MENGR = EXCINV-MENGR.
CRG23D-MENGA = EXCINV-MENGA.
CRG23D-MENGE = EXCINV-MENGR. " Move the allocated Qty
CRG23D-EXBED = ( EXCINV-EXBED * CRG23D-MENGE ) / EXCINV-MENGA.
CRG23D-EXSED = ( EXCINV-EXSED * CRG23D-MENGE ) / EXCINV-MENGA.
CRG23D-EXAED = ( EXCINV-EXAED * CRG23D-MENGE ) / EXCINV-MENGA.
ENDFORM. " FILL_CRG23D
*& Form UPDATE_DOCUMENT
text *
--> p1 text
<-- p2 text
FORM UPDATE_DOCUMENT.
LOOP AT XLIPS.
UPDATE J_1IRG23D SET STATUS = 'P'
WHERE VBELN = XLIPS-VBELN
AND POSNR = XLIPS-POSNR.
ENDLOOP.
COMMIT WORK.
ENDFORM. " UPDATE_DOCUMENT
*& Form DELIVERY_START_USER_EXIT
text *
--> p1 text
<-- p2 text
FORM DELIVERY_START_USER_EXIT.
CALL FUNCTION 'J_1I7_USEREXIT_EXGRP_DETERM'
EXPORTING
EXCGRP = EXCGROUP
MBLNR =
MJAHR =
VENDOR =
VBELN = DELIVERY
IMPORTING
EXCGRP = EXCGROUP
SHIPFROM_IND = J1IJ300-SHIPFROM_IND
RG23D_SERIALNO = J1IJ300-RG23D_SERIALNO
EXCEPTIONS
OTHERS = 1.
CALL FUNCTION 'J_1I7_USEREXIT_SERGRP_DETERM'
EXPORTING
SRGRP = SERGROUP
MBLNR =
MJAHR =
VBELN = DELIVERY
IMPORTING
SRGRP = SERGROUP
EXCEPTIONS
OTHERS = 1.
ENDFORM. " DELIVERY_START_USER_EXIT
*& Form GENERATE_RG23D_SERIAL
text *
--> p1 text
<-- p2 text
FORM GENERATE_RG23D_SERIAL.
LOOP AT Z_1IRG23D WHERE MENGE <> 0.
CLEAR: FOLIO, SERIALNO.
SELECT MAX( FOLIO ) MAX( SERIALNO )
INTO (Z_1IRG23D-FOLIO, Z_1IRG23D-SERIALNO)
FROM J_1IRG23D
WHERE TRNTYP = Z_1IRG23D-TRNTYP
AND DOCNO = Z_1IRG23D-DOCNO
AND DOCYR = Z_1IRG23D-DOCYR
AND ZEILE = Z_1IRG23D-ZEILE.
MODIFY Z_1IRG23D.
ENDLOOP.
ENDFORM. " GENERATE_RG23D_SERIAL
*& Form GENERATE_EXCISE_INV_SERIAL
text *
--> p1 text
<-- p2 text
FORM GENERATE_EXCISE_INV_SERIAL.
CLEAR: DEPEXNUM, DEPEXYEAR.
CALL FUNCTION 'J_1I6_DETERMINE_EXC_YEAR'
EXPORTING
I_BUKRS = J1IJ300-BUKRS
IMPORTING
EXCISE_YEAR = DEPEXYEAR
EXCEPTIONS
MISS_COMPANY = 1
OTHERS = 2.
IF SY-SUBRC NE 0.
MESSAGE E526 WITH 'Company ' J1IJ300-BUKRS.
ENDIF.
CALL FUNCTION 'NUMBER_GET_NEXT'
EXPORTING
NR_RANGE_NR = '01'
OBJECT = 'J_1IDEPINV'
QUANTITY = '1'
SUBOBJECT = SERGROUP
TOYEAR = DEPEXYEAR
IMPORTING
NUMBER = DEPEXNUM
EXCEPTIONS
INTERVAL_NOT_FOUND = 1
NUMBER_RANGE_NOT_INTERN = 2
OBJECT_NOT_FOUND = 3
QUANTITY_IS_0 = 4
QUANTITY_IS_NOT_1 = 5
INTERVAL_OVERFLOW = 6
OTHERS = 7.
CASE SY-SUBRC.
WHEN 0.
WHEN 1.
MESSAGE A336 WITH 'internal document' ': Interval not found'
'. Number object : J_1IDEPINV'.
WHEN 3.
MESSAGE A336 WITH 'internal document' ': Object not found'
'. Number object : J_1IDEPINV'.
WHEN OTHERS.
MESSAGE A336 WITH 'internal document'
'. Number object : J_1IDEPINV'.
ENDCASE.
Update Depot Excise Invoice Year and Number in the table
LOOP AT Z_1IRG23D.
Z_1IRG23D-SERIALNO = Z_1IRG23D-SERIALNO + 1.
Z_1IRG23D-DEPEXYEAR = DEPEXYEAR.
Z_1IRG23D-DEPEXNUM = DEPEXNUM.
MODIFY Z_1IRG23D.
ENDLOOP.
ENDFORM. " GENERATE_EXCISE_INV_SERIAL
*& Form UNLOCKING
text
--> p1 text
<-- p2 text
FORM UNLOCKING.
LOOP AT LOCKTAB.
CALL FUNCTION 'DEQUEUE_EJ_1IEXDTL'
EXPORTING
MODE_J_1IEXCDTL = 'S'
MANDT = SY-MANDT
TRNTYP = LOCKTAB-TRNTYP
DOCYR = LOCKTAB-DOCYR
DOCNO = LOCKTAB-DOCNO
ZEILE = LOCKTAB-ZEILE.
ENDLOOP.
ENDFORM. " UNLOCKING -
Automatic payment program (F110) document are not update in PAYR table
Hi all,
I have make payment in F110 (automatic payment) to customer
But it is not update in PAYR table
Please guide me what I have to do for documents update in PAYR table
Thanks and Regards,
PrudhviHi,
It is possible to enter multiple documents.
You can enter a list of single documents or in intervals.
Enter the document number in ascending order.
Ex:
Individual documents.
10001,10003,10011
If the documents are in a sequence you can enter the Interval like this
(10001,10011)
Hope it helps you
Regards
Andrew
Edited by: Andrew J on May 28, 2009 4:26 PM -
PO no is not updateing in MSEG table for transfer posting wrt PO
Hi All ,
PO number not updateing in MSEG table field EBELN for transfer posting with reference to PO . What should be the reason . This is for subcontracting process .Hi Raghavendra Balegar
If u r doing through scheduling agreement then it will not sit in MSEG. only if u doing through standard PO i.e. NB then only u can view the data of PO in MSEG.
Regards
Ram -
BAPI_ACC_DOCUMENT_POST does not update BKPF/BSEG tables
Hello,
I used bapi_acc_document_post to post a accounting document The following routine says that the document is successfully posted, however, does not update the acccounting tables. I read several messages on the SDN and unable to get the correct answer.
Your help is appreciated.
Regards
William
REPORT ze_bapi_acc_document_post .
SELECTION-SCREEN BEGIN OF BLOCK bl01 .
SELECTION-SCREEN ULINE.
PARAMETERS:
ref_key LIKE bapiache01-obj_key DEFAULT 'TEST000001BAPICALL',
dest LIKE bdi_logsys-logsys DEFAULT ' '.
SELECTION-SCREEN END OF BLOCK bl01 .
DATA:
gd_documentheader LIKE bapiache09,
gd_customercpd LIKE bapiacpa09,
gd_fica_hd LIKE bapiaccahd,
it_accountreceivable LIKE TABLE OF bapiacar09 WITH HEADER LINE,
it_accountgl LIKE TABLE OF bapiacgl09 WITH HEADER LINE,
it_accounttax LIKE TABLE OF bapiactx09 WITH HEADER LINE,
it_criteria LIKE TABLE OF bapiackec9 WITH HEADER LINE,
it_valuefield LIKE TABLE OF bapiackev9 WITH HEADER LINE,
it_currencyamount LIKE TABLE OF bapiaccr09 WITH HEADER LINE,
it_return LIKE TABLE OF bapiret2 WITH HEADER LINE,
it_receivers LIKE TABLE OF bdi_logsys WITH HEADER LINE,
it_fica_it LIKE TABLE OF bapiaccait WITH HEADER LINE,
it_accountpayable LIKE TABLE OF bapiacap09 WITH HEADER LINE,
it_paymentcard LIKE TABLE OF bapiacpc09 WITH HEADER LINE,
it_ext LIKE TABLE OF bapiacextc WITH HEADER LINE.
PERFORM fill_internal_tables.
CALL FUNCTION 'BAPI_ACC_DOCUMENT_CHECK'
DESTINATION dest
EXPORTING
documentheader = gd_documentheader
customercpd = gd_customercpd
contractheader = gd_fica_hd
TABLES
accountgl = it_accountgl
accountreceivable = it_accountreceivable
accountpayable = it_accountpayable
accounttax = it_accounttax
currencyamount = it_currencyamount
return = it_return.
WRITE: / 'Result of check all:'. "#EC NOTEXT
PERFORM show_messages.
DATA: l_type LIKE gd_documentheader-obj_type,
l_key LIKE gd_documentheader-obj_key,
l_sys LIKE gd_documentheader-obj_sys.
CALL FUNCTION 'BAPI_ACC_DOCUMENT_POST'
EXPORTING
documentheader = gd_documentheader
customercpd = gd_customercpd
contractheader = gd_fica_hd
IMPORTING
obj_type = l_type
obj_key = l_key
obj_sys = l_sys
TABLES
accountgl = it_accountgl
accountpayable = it_accountpayable
accounttax = it_accounttax
currencyamount = it_currencyamount
return = it_return
EXCEPTIONS
OTHERS = 1.
WRITE: / 'Result of post:'. "#EC NOTEXT
PERFORM show_messages.
REFRESH IT_RETURN.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
WAIT = 'X'.
IMPORTING
RETURN = IT_RETURN.
COMMIT WORK. .
BREAK-POINT.
Form fill_internal_tables
FORM fill_internal_tables.
PERFORM fill_header.
PERFORM fill_accountgl.
PERFORM fill_accountap.
PERFORM fill_accounttax.
PERFORM fill_currencyamount.
ENDFORM. " fill_internal_tables
Form Show_messages
FORM show_messages.
IF it_return[] IS INITIAL.
WRITE: / 'no messages'.
ELSE.
SKIP 1.
LOOP AT it_return.
WRITE: / it_return-type,
(2) it_return-id,
it_return-number,
(80) it_return-message,
it_return-message_v1,
(20) it_return-parameter,
(3) it_return-row,
it_return-field.
ENDLOOP.
ENDIF.
ULINE.
ENDFORM. " Show_messages
FORM fill_accountgl *
FORM fill_accountgl.
Actual invoice line
CLEAR it_accountgl.
it_accountgl-itemno_acc = 2.
it_accountgl-gl_account = '0000009223'.
it_accountgl-item_text = 'Line Iten'. "#EC NOTEXT
it_accountgl-profit_ctr = 'DNDDUMMY'.
it_accountgl-comp_code = '0180'.
it_accountgl-tax_code = 'IG'.
it_accountgl-FUNDS_CTR = '1985BA'.
it_accountgl-COSTCENTER = '1985BA'.
it_accountgl-FUND = 'C113'.
it_accountgl-TAXJURCODE = 'CAON'.
APPEND it_accountgl.
ENDFORM. "fill_accountgl
FORM fill_header *
FORM fill_header.
CALL FUNCTION 'OWN_LOGICAL_SYSTEM_GET'
IMPORTING
own_logical_system = gd_documentheader-obj_sys.
OBJ_TYPE has to be replaced by customers object key (Y* or Z*)
gd_documentheader-obj_type = 'BKPFF'.
gd_documentheader-obj_key = ref_key.
gd_documentheader-BUS_ACT = 'RMRP'.
gd_documentheader-username = sy-uname.
gd_documentheader-header_txt = 'BAPI Test'. "#EC NOTEXT
gd_documentheader-obj_key_r =
GD_DOCUMENTHEADER-reason_rev =
gd_documentheader-comp_code = '0180'.
GD_DOCUMENTHEADER-AC_DOC_NO =
gd_documentheader-fisc_year = '2008'.
gd_documentheader-doc_date = sy-datum.
gd_documentheader-pstng_date = '20070901'.
GD_DOCUMENTHEADER-TRANS_DATE = SY-DATUM.
GD_DOCUMENTHEADER-VALUE_DATE =
GD_DOCUMENTHEADER-FIS_PERIOD =
gd_documentheader-doc_type = 'RE'.
gd_documentheader-ref_doc_no = '6000009268'.
GD_DOCUMENTHEADER-COMPO_ACC = 'FI'.
gd_documentheader-bus_act = 'RFBU'.
ENDFORM. "fill_header
FORM fill_ap *
FORM fill_accountap.
vendor line
CLEAR it_accountpayable.
it_accountpayable-itemno_acc = 1.
it_accountpayable-comp_code = '0180'.
it_accountpayable-pmnttrms = '0006'.
it_accountpayable-TAX_CODE = 'IG'.
it_accountpayable-vendor_no = '0001200051'.
it_accountpayable-item_text = 'Vendor Line'. "#EC NOTEXT
APPEND it_accountpayable.
ENDFORM. "fill_accountap
FORM fill_tax *
FORM fill_accounttax.
tax line
CLEAR it_accounttax.
it_accounttax-itemno_acc = 3.
it_accounttax-gl_account = '0000081710'.
it_accounttax-tax_code = 'IG'.
it_accounttax-acct_key = 'VST'.
it_accounttax-TAXJURCODE = 'CA00'.
APPEND it_accounttax.
ENDFORM. "fill_accounttax
FORM fill_currencyamount *
FORM fill_currencyamount.
CLEAR it_currencyamount.
it_currencyamount-itemno_acc = 1.
it_currencyamount-curr_type = '00'.
it_currencyamount-currency = 'CAD'.
it_currencyamount-amt_base = '106.00'.
APPEND it_currencyamount.
CLEAR it_currencyamount.
it_currencyamount-itemno_acc = 2.
it_currencyamount-curr_type = '00'.
it_currencyamount-currency = 'CAD'.
it_currencyamount-amt_base = '100.00'.
APPEND it_currencyamount.
CLEAR it_currencyamount.
it_currencyamount-itemno_acc = 3.
it_currencyamount-curr_type = '00'.
it_currencyamount-currency = 'CAD'.
it_currencyamount-amt_base = '6.00'.
APPEND it_currencyamount.
ENDFORM. "fill_currencyamountU have to implement the BADI for this.. ‘AC_DOCUMENT’
Add source code into Method: CHANGE_INITIAL & CHANGE_AFTER_CHECK,
*---<SAPLBPFC> is for Posting with BAPI: BAPI_ACC_DOCUMENT_POST
*---<SAPCNVE > is for Posting(Tax) with BAPI: BAPI_ACC_DOCUMENT_POST
*---<SAPMSSY1> is for Test(Check) with BAPI: BAPI_ACC_DOCUMENT_CHECK
DATA: wa_header TYPE acchd.
IF sy-xprog NE ' SAPMSSY1 '.
CLEAR wa_header.
wa_header = im_document-header.
ex_document-header-bktxt = wa_header-bktxt.
CLEAR wa_header.
ENDIF.
Maybe you are looking for
-
Setting up iCloud After iOS 6 for multiple devices and one Apple ID
We have a shared Apple ID for our iTunes Store purchases. We share a Mac, and we share an iPad. Each of us has a separate iPhone. How should we set up iCloud to enable us to download pics that we take with our iPhone automatically to iPhoto on our
-
Can't take the credit for discovering this one, but can confirm it. If you try to cable an object of an environment window to an object of another environment window, Logic 9.0.1 (with OSX.6.1) will crash... hard.
-
Safari 4.1 crashing all the time on OS 10.4.11
Hello. I'm new to this too. I have read the previous discussions but I cannot locate such things that are mentioned here is the crash report for Safari 4.1 on OS 10.4.11 Host Name: skynet-2 Date/Time: 2010-07-07 15:39:57.031 +0100 OS Version: 10.4.11
-
How do I minimize an image to a tab in CS5?
In my CS3 when I minimized a window while working in Photoshop it would minimize it to a tab at the bottom of the photoshop window. Now in CS5 it minimizes it to a tab on my MS Windows toolbar instead. Is there any way to have them once again minim
-
Please let me know how to write the Query to fetch data from tables
Hi Folks, Please let me know how to get the data from different tables using the functionality SQ03,SQ02 and SQ01 . Helpful answers will points awarded. Regards, Ram.