Urgent: making multiple inspection characterstics in QP01 bdc
Hi,
I had made a BDC on QP01 in which i am able to upload 1 line for the
inspection characterstic of a single Operation .
Now the problem is there are around 10 to 15 lines for the inspection characterstic of a single Operation and i am not able to do it through it my bdc. now anybody can provide me some knowledge about it as how it is to be done?
plzz help me out as it is really urgent to me and help will be definately rewarded.
Hi,
I had made bdc on transaction CA02. Its similiar to your requirement in which there are multiple inspection characterstics for single operation. Through BDC its possible. Please go through the below code.
LOOP AT i_route_file INTO wa_route_file.
AT NEW plnnr.
PERFORM : zf_prepare_bdcdata_prg USING 'SAPLCPDI' '1010',
zf_prepare_bdcdata_value USING 'BDC_OKCODE' '/00',
zf_prepare_bdcdata_value USING 'RC271-PLNNR'
wa_route_file-plnnr.
*--Conversion of date to internal format.
PERFORM zf_conv_date.
PERFORM zf_prepare_bdcdata_value USING 'RC271-STTAG' v_date.
ENDAT.
lv_arbpl = wa_route_file-arbpl.
lv_steus = wa_route_file-steus.
lv_ltxa1 = wa_route_file-ltxa1.
*--Operation data
AT NEW vornr.
v_inscounter = 1.
PERFORM : zf_prepare_bdcdata_prg USING 'SAPLCPDI' '1400',
zf_prepare_bdcdata_value USING 'BDC_OKCODE' '/00',
zf_prepare_bdcdata_value USING 'RC27X-ENTRY_ACT' '1'.
*--Conversion of vornr to internal format
PERFORM zf_conv_vornr.
READ TABLE i_opno INTO wa_opno WITH KEY plnnr = wa_route_file-plnnr
vornr = wa_route_file-vornr.
IF sy-subrc <> 0.
DESCRIBE TABLE i_opno LINES v_lines.
v_num = v_lines + 1.
ELSE.
v_num = sy-tabix.
ENDIF.
CLEAR v_fieldnm.
CONCATENATE 'PLPOD-ARBPL(' v_num ')' INTO v_fieldnm.
PERFORM : zf_prepare_bdcdata_value USING v_fieldnm lv_arbpl.
CLEAR v_fieldnm.
CONCATENATE 'PLPOD-STEUS(' v_num ')' INTO v_fieldnm.
PERFORM : zf_prepare_bdcdata_value USING v_fieldnm lv_steus.
CLEAR v_fieldnm.
CONCATENATE 'PLPOD-LTXA1(' v_num ')' INTO v_fieldnm.
PERFORM : zf_prepare_bdcdata_value USING v_fieldnm lv_ltxa1,
zf_prepare_bdcdata_prg USING 'SAPLCPDI' '1400',
zf_prepare_bdcdata_value USING 'BDC_OKCODE' '=QMUE',
zf_prepare_bdcdata_value USING 'RC27X-ENTRY_ACT' '1'.
CLEAR v_fieldnm.
CONCATENATE 'RC27X-FLG_SEL(' v_num ')' INTO v_fieldnm.
PERFORM: zf_prepare_bdcdata_value USING v_fieldnm 'X'.
ENDAT.
*--Inspection Characteristics
PERFORM: zf_prepare_bdcdata_prg USING 'SAPLQPAA' '0150',
zf_prepare_bdcdata_value USING 'BDC_OKCODE' '/00'.
CLEAR v_fieldnm.
CONCATENATE 'PLMKB-VERWMERKM(' v_inscounter ')' INTO v_fieldnm.
PERFORM: zf_prepare_bdcdata_value USING v_fieldnm
wa_route_file-verwmerkm.
CLEAR v_fieldnm.
CONCATENATE 'PLMKB-MKVERSION(' v_inscounter ')' INTO v_fieldnm.
PERFORM: zf_prepare_bdcdata_value USING v_fieldnm
wa_route_file-mkversion.
CLEAR v_fieldnm.
CONCATENATE 'PLMKB-PMETHODE(' v_inscounter ')' INTO v_fieldnm.
PERFORM: zf_prepare_bdcdata_value USING v_fieldnm
wa_route_file-pmethode.
CLEAR v_fieldnm.
CONCATENATE 'PLMKB-PMTVERSION(' v_inscounter ')' INTO v_fieldnm.
PERFORM: zf_prepare_bdcdata_value USING v_fieldnm
wa_route_file-pmtversion.
CLEAR v_fieldnm.
CONCATENATE 'PLMKB-STICHPRVER(' v_inscounter ')' INTO v_fieldnm.
PERFORM: zf_prepare_bdcdata_value USING v_fieldnm
wa_route_file-stichprver.
CLEAR v_fieldnm.
CONCATENATE 'QFLTP-SOLLWERT(' v_inscounter ')' INTO v_fieldnm.
PERFORM: zf_prepare_bdcdata_value USING v_fieldnm
wa_route_file-sollwert.
CLEAR v_fieldnm.
CONCATENATE 'QFLTP-TOLERANZUN(' v_inscounter ')' INTO v_fieldnm.
PERFORM: zf_prepare_bdcdata_value USING v_fieldnm
wa_route_file-toleranzun.
CLEAR v_fieldnm.
CONCATENATE 'QFLTP-TOLERANZOB(' v_inscounter ')' INTO v_fieldnm.
PERFORM: zf_prepare_bdcdata_value USING v_fieldnm
wa_route_file-toleranzob.
CLEAR v_fieldnm.
CONCATENATE 'PLMKB-DUMMY10(' v_inscounter ')' INTO v_fieldnm.
PERFORM: zf_prepare_bdcdata_value USING v_fieldnm
wa_route_file-dummy10.
PERFORM: zf_prepare_bdcdata_prg USING 'SAPLQPAA' '1501',
zf_prepare_bdcdata_value USING 'BDC_OKCODE' '=ENT1',
zf_prepare_bdcdata_value USING 'PLMKB-VERWMERKM'
wa_route_file-verwmerkm,
zf_prepare_bdcdata_value USING 'PLMKB-QPMK_WERKS'
wa_route_file-qpmk_werks,
zf_prepare_bdcdata_value USING 'PLMKB-MKVERSION'
wa_route_file-mkversion,
zf_prepare_bdcdata_value USING 'PLMKB-PMETHODE'
wa_route_file-pmethode,
zf_prepare_bdcdata_value USING 'PLMKB-QMTB_WERKS'
wa_route_file-qmtb_werks,
zf_prepare_bdcdata_value USING 'PLMKB-PMTVERSION'
wa_route_file-pmtversion.
PERFORM: zf_prepare_bdcdata_prg USING 'SAPLQPAA' '1502',
zf_prepare_bdcdata_value USING 'BDC_OKCODE' '=ENT1',
zf_prepare_bdcdata_value USING 'BDC_CURSOR' 'PLMKB-PMETHODE',
zf_prepare_bdcdata_value USING 'PLMKB-PMETHODE'
wa_route_file-pmethode,
zf_prepare_bdcdata_value USING 'PLMKB-QMTB_WERKS'
wa_route_file-qmtb_werks,
zf_prepare_bdcdata_value USING 'PLMKB-PMTVERSION'
wa_route_file-pmtversion.
PERFORM: zf_prepare_bdcdata_prg USING 'SAPLQPAA' '1502',
zf_prepare_bdcdata_value USING 'BDC_OKCODE' '=ENT1',
zf_prepare_bdcdata_value USING 'BDC_CURSOR' 'PLMKB-PMETHODE',
zf_prepare_bdcdata_value USING 'PLMKB-PMETHODE'
wa_route_file-pmethode,
zf_prepare_bdcdata_value USING 'PLMKB-QMTB_WERKS'
wa_route_file-qmtb_werks,
zf_prepare_bdcdata_value USING 'PLMKB-PMTVERSION'
wa_route_file-pmtversion.
PERFORM: zf_prepare_bdcdata_prg USING 'SAPLQPAA' '0150',
zf_prepare_bdcdata_value USING 'BDC_OKCODE' '=QMD1',
zf_prepare_bdcdata_value USING 'RQPAS-ENTRY_ACT' '1'.
CLEAR v_fieldnm.
CONCATENATE 'RQPAS-SEL_FLG(' v_inscounter ')' INTO v_fieldnm.
PERFORM: zf_prepare_bdcdata_value USING v_fieldnm 'X'.
PERFORM: zf_prepare_bdcdata_prg USING 'SAPLQPAA' '0160',
zf_prepare_bdcdata_value USING 'BDC_OKCODE' '=QMAM',
zf_prepare_bdcdata_value USING 'PLMKB-STICHPRVER'
wa_route_file-stichprver.
PERFORM: zf_prepare_bdcdata_prg USING 'SAPLQPAA' '0160',
zf_prepare_bdcdata_value USING 'BDC_OKCODE' '/00',
zf_prepare_bdcdata_value USING 'BDC_CURSOR'
'PLMKB-PROBENR',
zf_prepare_bdcdata_value USING 'PLMKB-PROBENR'
wa_route_file-probenr,
zf_prepare_bdcdata_value USING 'PLMKB-PMETHODE'
wa_route_file-pmethode,
zf_prepare_bdcdata_value USING 'PLMKB-QMTB_WERKS'
wa_route_file-qmtb_werks,
zf_prepare_bdcdata_value USING 'PLMKB-PMTVERSION'
wa_route_file-pmtversion.
PERFORM: zf_prepare_bdcdata_prg USING 'SAPLQPAA' '1502',
zf_prepare_bdcdata_value USING 'BDC_OKCODE' '=ENT1',
zf_prepare_bdcdata_value USING 'BDC_CURSOR' 'PLMKB-PMETHODE',
zf_prepare_bdcdata_value USING 'PLMKB-PMETHODE'
wa_route_file-pmethode,
zf_prepare_bdcdata_value USING 'PLMKB-QMTB_WERKS'
wa_route_file-qmtb_werks,
zf_prepare_bdcdata_value USING 'PLMKB-PMTVERSION'
wa_route_file-pmtversion.
PERFORM: zf_prepare_bdcdata_prg USING 'SAPLQPAA' '0160',
zf_prepare_bdcdata_value USING 'BDC_OKCODE' '=QMBU',
zf_prepare_bdcdata_value USING 'PLMKB-PROBENR'
wa_route_file-probenr,
zf_prepare_bdcdata_value USING 'PLMKB-PMETHODE'
wa_route_file-pmethode,
zf_prepare_bdcdata_value USING 'PLMKB-QMTB_WERKS'
wa_route_file-qmtb_werks,
zf_prepare_bdcdata_value USING 'PLMKB-PMTVERSION'
wa_route_file-pmtversion.
PERFORM: zf_prepare_bdcdata_prg USING 'SAPLQPAA' '1502',
zf_prepare_bdcdata_value USING 'BDC_OKCODE' '=ENT1',
zf_prepare_bdcdata_value USING 'BDC_CURSOR' 'PLMKB-PMETHODE',
zf_prepare_bdcdata_value USING 'PLMKB-PMETHODE'
wa_route_file-pmethode,
zf_prepare_bdcdata_value USING 'PLMKB-QMTB_WERKS'
wa_route_file-qmtb_werks,
zf_prepare_bdcdata_value USING 'PLMKB-PMTVERSION'
wa_route_file-pmtversion.
v_inscounter = v_inscounter + 1.
AT END OF plnnr.
*--Call transaction CA02- Change Routing
CALL TRANSACTION 'CA02' USING i_bdcdata
MESSAGES INTO i_messtab
MODE 'N'
UPDATE 'S'.
COMMIT WORK AND WAIT.
ENDAT.
ENDLOOP.
Please ask if any queries....
Similar Messages
-
Material Inspection characterstics
Hi all,
I have created a new plant, business area and sales organization. I have done almost all configurations. Now I am doing a test run of MM. I have created a material and al necessary master data. I created an inspection plan for this material . while entering inspections characterstics in qp01, no characterstic is shown for my newly created plant 5500. Where I can create characterstics for this plant or assigned already created characterstics to new plant?
Please respond.
Regards,
AI.I hav resolved myself. it can be done in tcode qs21.
Regards,
AI. -
Error in LSMW in Uploading Inspection Plan in QP01
Hi All,
I am facing problem when executing LSMW, I am Uploading Inspection Plan in QP01 transaction using Direct Input methos. The problem is on 13th step :Error that I get is 'No profile with entry tool for task list / / / in session INSPECTION_OBJ', here INSPECTION_OBJ is the name of the session. I have given the constant value of field profile (BIPKO-PROFIDNETZ) in mapping step and also activated check box 'entry tool' under profile to remove this error. But in that case i can pass only the header data while processing the session and control does not get into Operation and characteristic screen.
Can anyone pls help me..
Thanks in advance...You might need to redo the recording all over again, BDC has plentty of scenario for screen selection to go wrong, so can't really tell what cause your problem based on your desc. I have been stop using BDC to uplaod material since 5 years ago, I always use Direct input in LSMW and it works much better. I recomend you try the Direct input method instead of BDC if still getting problem.
-
What is the IDOC for Master inspection Characterstics Creation/edit/Cancel
Hi
i need IDOC for this.....
what is the IDOC for
1.Master inspection Characterstics Creation
2.Master inspection Characterstics Edit
3.Master inspection Characterstics Cancel
plz give ans very urgent
bye
sureshCheck these..
in TCode: we30
->INSPECTIONPLAN_CREATE01
->MATQM01
->QPMK01
Regards,
Ramesh. -
Creation of multiple inspection points
Hello experts,
I try to figure out how to create multiple inspection points for one operation at process order release.
It means that the release of the process order triggers:
- inspection lot creation (lot origin 03)
- inspection points creation for operation with inspection characteristics assigned to it
In the recipe header, I entered inspection points = 150 - generated inspection point, qty or time
(module function QAPP_CUST_IP_CREATE is activated for "automatic creation of insp. points")
In the operation header, I select time related -and enter 1 HR
However no inspection point is created at process order release. Only inspection point identifier is created automatically when I select the next inspection point in TR QE51N.
Do you have any tips on the subject ?
Thanks in advance
Best regards
AmauryDear Amuary
Doubt if there is any solution in standard. Use exit so that thr first 3 inspection points gets activated quickly. Try these exits
QAPP0001
User exit QAPP 1 (create inspection point)
| QAPP0002 |User exit QAPP 2 (create inspection point & other data)
Regards
Gajesh -
QM Related (Multiple Inspection Lots)
Dear Gurus,
Can anyone explain me the process of creating mulitple inspection lots.
one way that I knew, is that to setup 'partial lots' in the master recipe and make the system work to create multiple inspection lots.... Are there any other methods to accomplish this?
ThanksThanks for your concerns!..
The requirement is that the site is required to create multiple inspection lots (of 03 type - Inprocess inspection type) for the same batch number that is tied to a process order....with the constraint that the process order has and will have only one phase..
Any lights?... Thanks, -
Hi All -
Client does multiple goods receipts for a process order and the requirement is to create multiple inspection lots one at order level and other at each goods receipt level.
Is there any way to generate inspection lot at order level and for every goods receipt for the same process order ?
Please advice..
SOnly if you are using DMR's at the characteristic level to create skip characteristics.
In that case, you put on all the characteristics that need to be tested over the life of the order. Then the DMR makes characteristics optional or required as you prcoess the inspection lots.
The problem usually lies in how to reset all characteristics to the initial level. Characteristics can also get out of sync due to failures. A failed charateristic usually causes the DMR to make the characteristic required on the next inspection. Then it might be "off schedule" with regards to other or similar characteristics. This can be somewhat mitigated by using dependent characteristics so a group of characteristics follow the same DMR.
It works best when you have a very rigid receipt process. I.e. you know for a given material, that you'll do X number of receipts over the life of the order and all the receipts are of the same size.
FF -
Multiple inspection against Batch
Hi,
My client doing the inprocess quality checking of the same set of inprocess characteristics every hour for a particular bacth during production. They have both REM and PP-PI and we are using 03 and 13 inspection types for inprocess checking.Now how to handle multiple inspection of same set of characteristics for every hour?
Regards
Sandip1.Select the "Inspection points based on time " in routing Header
2.In Operation overview under Inspection points put time 60 min.
3.check T code QE70
This will create the Inspection point per Hr..........which will allow you to do the multiple RR on same set of chars -
I am making multiple DVD's of roughly 50 hours of footage on DVD Studio pro with 4 separate menus for 4 different 'parts' or series if you will. 50 hours - 20 episodes - 4 parts of 5 episodes each. What are my options in terms of burning these parts on to separate DVD's, what is the process, what size DVD RW should I buy, what bitrate should I use, and what quality I should expect for the burn. Any advice or insight is welcome.
>>What are my options in terms of burning these parts on to separate DVD's<<
20 episodes totaling 50 hours equals about 2.5 hours per episode assuming all episodes have the same duration. Fitting 2.5 hours onto one single layer DVD would require a low bit rate which means quality wouldn't be anywhere near best, but that's a judgement call you'll have to make based on several factors. For example; if there is not much motion in the video (talking heads, etc), you can get by with a lower bit rate and may not notice any quality difference.
>>what is the process>>
The process is essentially the same as it is when authoring a regular DVD with 2 hours or less of content. However, with as many discs as you'd need to complete this "set," you'll need to create a separate DVD Studio Project for each disc. Basically, you'd use one of Compressor's DVD Presets (or customize a preset) to create an MPEG--2 video file (.m2v) and a Dolby Digital audio file (.AC3). Import both of those assets into your DVD Studio Pro project for authoring and burning.
If you want to keep one episode per disc, DVD Studio Pro does have a 150 minute preset or you could use dual-layer discs with a higher bit rate for better quality. Again; your call.
>>what size DVD RW should I buy<<
Size? 12cm. Capacity? Single layer, single sided DVD discs (DVD-5) have a rated capacity of 4.7Gb (4.37Gb actual), including menus. If you use single layer discs and want to keep the quality reasonably good, you'd need at least 50 discs to complete this "set" with each disc holding roughly 2 hours of footage if you keep the menu on each disc simple. Or, you could use dual-layer discs (DVD-9) which have a capacity of about 7.95Gb - almost doubling the recordable capacity. There are also dual-sided, dual-layer discs available (DVD-18) but they are relatively expensive and have to be manually turned over to continue playback ... but they do have roughly 15.9Gb capacity.
>>what bitrate should I use, and what quality I should expect for the burn<<
Exactly; the quality is dependent on the bit rate chosen, as well as the quality of the compression. Using compression markers where needed can greatly increase the quality of playback but will most likely increase the file size of the compressed video. For the best quality, keeping the bit rate as high as possible allowed under the DVD specification will yield the best quality but some DVD players may choke if the bit rate is too high. For best quality I typically aim for a bit rate around 7.6 to 8.0Mbps but that will only allow about one hour of footage.
Naturally, if you decrease the bit rate, you can fit more footage onto the disc but quality will be sacraficed. Here's a chart approximating DVD bit rates and durations for single layer discs (does not include space for menus):
3.5Mbps - 120 minutes
5.0Mbps - 95 minutes
6.0Mbps - 82 minutes
7.6Mbps - 65 minutes
8.0Mbps - 60 minutes
-DH -
Routing Inspection Characterstics
Hi Pandits,
I am trying to create Routing with its 'Inspection CHaracterstics' (IC) by filling table INSPCHARACTERISTIC. I am able to create Routing, but when I am specifying IC, it is not creating and giving me below error.
T ID NUM MESSAGE
E BAPI 001
W CPCC_DT 009 The valid-from data has been set from today's date
E QP 411 Enter a selected set
E CQCL 103 Consistency check when creating characteristic 0010 was unsuccessful
A CQCL 103 Consistency check when creating characteristic 0010 was unsuccessful
If someone encountered this problem and able to find the soln, please help me out.
Rgds
VaibhavDear,
I have dearched out internet, done my investigation but if one error resolves other comes. Can someone help me out?
Regards -
Difference between Characterstics and Master Inspection Characterstics??
Could some please explain me the difference between characterstics and Master inspection Characterstics?
How do you create a new master inspection characterstics?Classification and Characteristics are cross-application functions ( [SAP Help|http://help.sap.com/saphelp_erp60_sp/helpdata/en/dd/ae56614bb411d192f20000e829fbc6/frameset.htm] ) used in many areas of SAP such as:
- Equipment
- Functional location
- Notification
- Task lists
- Materials
- QM master inspection characteristics
- Sales orders
- Etc
PeteA -
PROBLEM IN QP01 BDC ( 19TH LINE ITEM IS NOT TAKING)
DEAR ALL,
I am working on a bdc of QP01 for inspection plan, my bdc is working prperly , problem is that in sceen there r 18 lines for line items , but i have 30 line items. after 18 line items no data is picking. and a message is coming no input data is there for screen no 0150. i tried a lot and unable to solve . if anybody can solve my problem . i send u the part of my code.
LOOP AT ITAB.
CHECK ITAB-MATNR = ITAB1-MATNR.
if flag = 1.
** QUALITATIVE **
if itab-QUALITAT = 'X' AND itab-QUANTITAT = ''.
IF I ge 18.
*CONCATENATE 'RQPAS-SEL_FLG(' I ')' INTO SCR.
*perform bdc_field using SCR
X = '17'..
CONCATENATE 'RQPAS-SEL_FLG(' X ')' INTO SCR.
perform bdc_field using SCR
X1 = '18'..
CONCATENATE 'RQPAS-SEL_FLG(' X ')' INTO SCR.
perform bdc_field using SCR
X2 = '340'.
CONCATENATE 'RQPAS-SEL_FLG(' X1 ')' INTO SCR.
perform bdc_field using SCR
PERFORM BDC_DYNPRO USING 'SAPLQPAA' '0150'.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
'RQPAS-QUALITAT(02)'.
PERFORM BDC_FIELD USING 'RQPAS-ENTRY_ACT'
'1'.
i.
PERFORM BDC_FIELD USING 'RQPAS-AB_MKNR'
ITAB-MERKNR .
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'/00'.
endif.
perform bdc_dynpro using 'SAPLQPAA' '0150'.
perform bdc_field using 'BDC_CURSOR'
'PLMKB-VERWMERKM(01)'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'RQPAS-ENTRY_ACT'
'1'.
k = i - 1.
CONCATENATE 'RQPAS-SEL_FLG(' k ')' INTO SCR.
perform bdc_field using SCR
CONCATENATE 'RQPAS-SEL_FLG(' i ')' INTO SCR.
perform bdc_field using SCR
'X'.
***perform bdc_field using 'BDC_OKCODE'
'/00'.
***'=QMLM'.
CONCATENATE 'PLMKB-VERWMERKM(' I ')' INTO SCR.
perform bdc_field using scr "'PLMKB-VERWMERKM(01)'
'DS-TH-01'.
itab-VERWMERKM.
CONCATENATE 'PLMKB-KURZTEXT(' I ')' INTO SCR.
perform bdc_field using scr
itab-KURZTEXT.
regards
banajabut i want to try it out by modifying the existing code.
please provide me guidelines to solve this problem. -
MULTIPLE ITEM PROBLEM IN VL31N BDC
hI FRIENDS ,
I AM POSTING A BDC OF TRANSACTION VL31N ,ie FOR SCHEDULE AGREEMENT INBOUND DELIVERY.I CREATE A FUNCTIONAL MODULE OF THE SAME AND CALL IT FROM AN ASP PAGE,IN THAT THERE IS PO NUMBER 5500000986 WHICH HAS TWO ITEMES 62 AND 95 RESPECTIVLY OF SAME MATARIAL NUMBER R010230123041002 AND DIE NUMBER 2304P,NOW THE PROBLEM IS THIS BDC IS WORKING WHEN THERE IS ONLY ONE ITEM BUT GIVES AN ERROR "CANT CREAT INBOUND DELIVERY FOR PO NO ...' WNEN IT HAS MULTIPLE ITEM.WHAT SHOULD I DO ? I ALSO USED LOOP BUT IT ALSO DOSENT WORK AS IT WILL ADD ALL OPEN QTY OF PO 986 AND UPDATE AGAINST ITEM NO 95.
CODE IS AS FOLLOWS:.........
FUNCTION y_synie_bdcinbdly.
""Local interface:
*" IMPORTING
*" VALUE(CTU) LIKE APQI-PUTACTIVE DEFAULT 'X'
*" VALUE(MODE) LIKE APQI-PUTACTIVE DEFAULT 'N'
*" VALUE(UPDATE) LIKE APQI-PUTACTIVE DEFAULT 'L'
*" VALUE(GROUP) LIKE APQI-GROUPID OPTIONAL
*" VALUE(USER) LIKE APQI-USERID OPTIONAL
*" VALUE(KEEP) LIKE APQI-QERASE OPTIONAL
*" VALUE(HOLDDATE) LIKE APQI-STARTDATE OPTIONAL
*" VALUE(NODATA) LIKE APQI-PUTACTIVE DEFAULT '/'
*" VALUE(EXTNID) LIKE MAKT-MAKTG
*" VALUE(VENDORNO) LIKE LFA1-LIFNR
*" VALUE(PONUMBER) LIKE EKKO-EBELN
*" VALUE(ITEMNUMBER) LIKE LIPS-VGPOS
*" VALUE(MATERIAL) LIKE MAKT-MAKTG
*" VALUE(DLYQTY) LIKE LIPS-LFIMG
*" VALUE(BTCHNO) LIKE LIPS-CHARG
*" VALUE(POSLR) LIKE EKES-EBELP OPTIONAL
*" EXPORTING
*" VALUE(SUBRC) LIKE SYST-SUBRC
*" VALUE(INDELYNO) LIKE SY-MSGV2
*" VALUE(MSG1) LIKE SY-MSGV1
*" VALUE(MSG2) LIKE SY-MSGV2
*" VALUE(MSG3) LIKE SY-MSGV3
*" VALUE(MSG4) LIKE SY-MSGV4
*" TABLES
*" MESSTAB STRUCTURE BDCMSGCOLL
*" ERRTAB STRUCTURE YSYNERRMSGS
*" INDLYTAB STRUCTURE YSYN_QTYTAB
Updated by ANAND SYNISE 19.1.2007
DATA: BEGIN OF bdctab OCCURS 0.
INCLUDE STRUCTURE bdcdata.
DATA: END OF bdctab.
DATA: datenow(10) TYPE c,
fldvar(30) TYPE c,
fldno TYPE i,
flditoc(6) TYPE c,
qty(13) TYPE c.
DATA maxposnr LIKE lips-posnr.
DATA testposnr TYPE posnr.
DATA itemnoint TYPE i.
CONCATENATE sy-datum6(2) '.' sy-datum4(2) '.' sy-datum+0(4) INTO datenow.
CLEAR bdctab.
REFRESH bdctab.
PERFORM open_group USING group user keep holddate ctu.
CLEAR bdctab.
bdctab-program = 'SAPMV50A'.
bdctab-dynpro = '4007'.
bdctab-dynbegin = 'X'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_CURSOR'.
bdctab-fval = 'RV50A-VERUR_LA'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_OKCODE'.
bdctab-fval = '/00'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'LIKP-LIFNR'.
bdctab-fval = vendorno.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'LV50C-BSTNR'.
bdctab-fval = ponumber.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'RV50A-LFDAT_LA'.
bdctab-fval = datenow.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'RV50A-LFUHR_LA'.
bdctab-fval = '00:00'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'RV50A-VERUR_LA'.
bdctab-fval = extnid.
APPEND bdctab.
CLEAR bdctab.
bdctab-program = 'SAPMV50A'.
bdctab-dynpro = '1000'.
bdctab-dynbegin = 'X'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_OKCODE'.
bdctab-fval = '=MKAL_T'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_SUBSCR'.
bdctab-fval = 'SAPMV50A'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_CURSOR'.
bdctab-fval = 'LIKP-BLDAT'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'LIKP-BLDAT'.
bdctab-fval = datenow.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_SUBSCR'.
bdctab-fval = 'SAPMV50A'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'RV50A-LFDAT_LA'.
bdctab-fval = datenow.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'RV50A-LFUHR_LA'.
bdctab-fval = '00:00'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_SUBSCR'.
bdctab-fval = 'SAPMV50A'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_SUBSCR'.
bdctab-fval = 'SAPMV50A'.
APPEND bdctab.
CLEAR bdctab.
bdctab-program = 'SAPMV50A'.
bdctab-dynpro = '1000'.
bdctab-dynbegin = 'X'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_OKCODE'.
bdctab-fval = '=POPO_T'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_SUBSCR'.
bdctab-fval = 'SAPMV50A'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'LIKP-BLDAT'.
bdctab-fval = datenow.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_SUBSCR'.
bdctab-fval = 'SAPMV50A'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_CURSOR'.
bdctab-fval = 'LIPS-POSNR(01)'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'RV50A-LFDAT_LA'.
bdctab-fval = datenow.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'RV50A-LFUHR_LA'.
bdctab-fval = '00:00'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_SUBSCR'.
bdctab-fval = 'SAPMV50A'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_SUBSCR'.
bdctab-fval = 'SAPMV50A'.
APPEND bdctab.
CLEAR bdctab.
bdctab-program = 'SAPMV50A'.
bdctab-dynpro = '0111'.
bdctab-dynbegin = 'X'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_CURSOR'.
bdctab-fval = 'RV50A-PO_MATNR'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_OKCODE'.
bdctab-fval = 'WEIT'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'RV50A-PO_MATNR'.
bdctab-fval = material.
APPEND bdctab.
CLEAR bdctab.
bdctab-program = 'SAPMV50A'.
bdctab-dynpro = '1000'.
bdctab-dynbegin = 'X'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_OKCODE'.
bdctab-fval = '=POLO_T'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_SUBSCR'.
bdctab-fval = 'SAPMV50A'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'LIKP-BLDAT'.
bdctab-fval = datenow.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_SUBSCR'.
bdctab-fval = 'SAPMV50A'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_CURSOR'.
bdctab-fval = 'LIPS-POSNR(01)'.
APPEND bdctab.
*ADDED BY ANAND ON 22-01-2007
CLEAR bdctab.
bdctab-fnam = 'BDC_CURSOR'.
bdctab-fval = ITEMNUMBER . "ITEMNUMBER = LIPS-VGPOS
APPEND bdctab.
************ENDED***********************
ADDED BY MILIND 19.01.2007
CLEAR bdctab.
bdctab-fnam = 'BDC_CURSOR'.
bdctab-fval = poslr .
APPEND bdctab.
* ENDED * *
CLEAR bdctab.
bdctab-fnam = 'RV50A-LFDAT_LA'.
bdctab-fval = datenow.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'RV50A-LFUHR_LA'.
bdctab-fval = '00:00'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'RV50A-LIPS_SELKZ(01)'.
bdctab-fval = ''.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_SUBSCR'.
bdctab-fval = 'SAPMV50A'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_SUBSCR'.
bdctab-fval = 'SAPMV50A'.
APPEND bdctab.
CLEAR bdctab.
bdctab-program = 'SAPMV50A'.
bdctab-dynpro = '1000'.
bdctab-dynbegin = 'X'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_OKCODE'.
bdctab-fval = '/00'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_SUBSCR'.
bdctab-fval = 'SAPMV50A'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'LIKP-BLDAT'.
bdctab-fval = datenow.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_SUBSCR'.
bdctab-fval = 'SAPMV50A'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_CURSOR'.
bdctab-fval = 'LIPS-CHARG(01)'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'RV50A-LFDAT_LA'.
bdctab-fval = datenow.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'RV50A-LFUHR_LA'.
bdctab-fval = '00:00'.
APPEND bdctab.
CLEAR bdctab.
QTY = INDLYTAB-DLYQTY.
qty = dlyqty.
bdctab-fnam = 'LIPSD-G_LFIMG(01)'.
bdctab-fval = QTY.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'LIPS-CHARG(01)'.
* BDCTAB-FVAL = INDLYTAB-BTCHNO.
bdctab-fval = btchno.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_SUBSCR'.
bdctab-fval = 'SAPMV50A'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_SUBSCR'.
bdctab-fval = 'SAPMV50A'.
APPEND bdctab.
CLEAR bdctab.
bdctab-program = 'SAPMV50A'.
bdctab-dynpro = '1000'.
bdctab-dynbegin = 'X'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_OKCODE'.
bdctab-fval = '=SICH_T'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_SUBSCR'.
bdctab-fval = 'SAPMV50A'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'LIKP-BLDAT'.
bdctab-fval = datenow.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_SUBSCR'.
bdctab-fval = 'SAPMV50A'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_CURSOR'.
bdctab-fval = 'LIPS-MATNR(02)'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'RV50A-LFDAT_LA'.
bdctab-fval = datenow.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'RV50A-LFUHR_LA'.
bdctab-fval = '00:00'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_SUBSCR'.
bdctab-fval = 'SAPMV50A'.
APPEND bdctab.
CLEAR bdctab.
bdctab-fnam = 'BDC_SUBSCR'.
bdctab-fval = 'SAPMV50A'.
APPEND bdctab.
CALL TRANSACTION 'VL31N' USING bdctab MODE 'N' MESSAGES INTO messtab.
subrc = sy-subrc.
PERFORM close_group USING ctu.
CLEAR bdctab.
REFRESH bdctab.
IF sy-subrc EQ 0.
indelyno = sy-msgv2.
ENDIF.
LOOP AT messtab.
MOVE: messtab-msgid TO errtab-msgid,
messtab-msgnr TO errtab-msgnr,
messtab-msgv1 TO errtab-msg1,
messtab-msgv2 TO errtab-msg2,
messtab-msgv3 TO errtab-msg3,
messtab-msgv4 TO errtab-msg4.
APPEND ERRtab.
ENDLOOP.
LOOP AT errtab.
SELECT SINGLE text FROM t100
INTO errtab-errmsg
WHERE msgnr EQ errtab-msgnr AND arbgb EQ errtab-msgid
AND sprsl EQ sy-langu.
MODIFY errtab.
ENDLOOP.
ENDFUNCTION.Hi,
Check this code:
REPORT Z_CUSTOMER_UPLOAD .
D A T A D E C L A R A T I O N S *
DATA:BEGIN OF IT_CUSTOMER OCCURS 0,
KUNNR LIKE MV10A-KUNNR,
VKORG LIKE MV10A-VKORG,
VTWEG LIKE MV10A-VTWEG,
MATNR LIKE MV10A-MATNR,
KDMAT LIKE MV10A-KDMAT,
MEGRU LIKE MV10A-MEGRU,
SELKZ TYPE C value 'X',
LPRIO LIKE MV10A-LPRIO,
ANTLF LIKE MV10A-ANTLF,
END OF IT_CUSTOMER.
DATA:BEGIN OF IT_success OCCURS 0,
KUNNR LIKE MV10A-KUNNR,
VKORG LIKE MV10A-VKORG,
VTWEG LIKE MV10A-VTWEG,
MATNR LIKE MV10A-MATNR,
KDMAT LIKE MV10A-KDMAT,
MEGRU LIKE MV10A-MEGRU,
SELKZ TYPE C value 'X',
LPRIO LIKE MV10A-LPRIO,
ANTLF LIKE MV10A-ANTLF,
END OF IT_success.
DATA:BEGIN OF IT_error OCCURS 0,
KUNNR LIKE MV10A-KUNNR,
VKORG LIKE MV10A-VKORG,
VTWEG LIKE MV10A-VTWEG,
MATNR LIKE MV10A-MATNR,
KDMAT LIKE MV10A-KDMAT,
MEGRU LIKE MV10A-MEGRU,
SELKZ TYPE C value 'X',
LPRIO LIKE MV10A-LPRIO,
ANTLF LIKE MV10A-ANTLF,
END OF IT_error.
DATA: L_INDEX TYPE SY-TABIX.
DATA:IT_BDC LIKE BDCDATA OCCURS 0 WITH HEADER LINE,
IT_DATA TYPE ALSMEX_TABLINE OCCURS 0 WITH HEADER LINE.
ERROR MESSAGE TABLE
DATA:IT_MESSAGES LIKE BDCMSGCOLL OCCURS 0 WITH HEADER LINE.
DATA : C_S TYPE C VALUE 'S',
C_E TYPE C VALUE 'E'.
*DATA: IT_SUCCESS LIKE IT_CUSTOMER OCCURS 0,
IT_ERROR LIKE IT_CUSTOMER OCCURS 0.
DATA : V_RECTOT TYPE I,
V_RECERR TYPE I,
V_RECSUC TYPE I.
S E L E C T I O N - S C R E E N *
SELECTION-SCREEN : BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
PARAMETER : P_FILE LIKE RLGRAP-FILENAME .
SELECTION-SCREEN : END OF BLOCK B1.
A T S E L E C T I O N - S C R E E N *
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE.
to get F4 help for p_file
PERFORM F4_FILENAME USING P_FILE.
S T A R T O F S E L E C T I O N *
START-OF-SELECTION.
Uploading data from flat file into it_tab
PERFORM BDC_UPLOAD USING P_FILE.
PERFORM PROCESS_DATA.
PERFORM POPULATE_BDC.
E N D O F S E L E C T I O N *
*END-OF-SELECTION.
PERFORM DISPLAY_REPORT.
*& Form F4_FILENAME
text
-->P_P_FILE text
FORM F4_FILENAME USING P_P_FILE.
DATA:L_FILE TYPE IBIPPARMS-PATH.
CALL FUNCTION 'F4_FILENAME'
EXPORTING
PROGRAM_NAME = SYST-CPROG
DYNPRO_NUMBER = SYST-DYNNR
FIELD_NAME = ' '
IMPORTING
FILE_NAME = L_FILE .
P_P_FILE = L_FILE.
ENDFORM. " F4_FILENAME
*& Form BDC_UPLOAD
text
-->P_P_FILE text
FORM BDC_UPLOAD USING P_P_FILE.
CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'
EXPORTING
FILENAME = P_P_FILE
I_BEGIN_COL = 1
I_BEGIN_ROW = 1
I_END_COL = 8
I_END_ROW = 1000
TABLES
INTERN = IT_DATA
EXCEPTIONS
INCONSISTENT_PARAMETERS = 1
UPLOAD_OLE = 2
OTHERS = 3
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDFORM. " BDC_UPLOAD
*& Form PROCESS_DATA
text
--> p1 text
<-- p2 text
FORM PROCESS_DATA.
SORT IT_DATA BY ROW COL.
LOOP AT IT_DATA.
CASE IT_DATA-COL.
WHEN 1.
IT_CUSTOMER-KUNNR = IT_DATA-VALUE.
WHEN 2.
IT_CUSTOMER-VKORG = IT_DATA-VALUE.
WHEN 3.
IT_CUSTOMER-VTWEG = IT_DATA-VALUE.
WHEN 4.
IT_CUSTOMER-MATNR = IT_DATA-VALUE.
WHEN 5.
IT_CUSTOMER-KDMAT = IT_DATA-VALUE.
WHEN 6.
IT_CUSTOMER-MEGRU = IT_DATA-VALUE.
WHEN 7.
IT_CUSTOMER-LPRIO = IT_DATA-VALUE.
WHEN 8.
IT_CUSTOMER-ANTLF = IT_DATA-VALUE.
APPEND IT_CUSTOMER.
ENDCASE.
ENDLOOP.
ENDFORM. " PROCESS_DATA
*& Form POPULATE_BDC
text
--> p1 text
<-- p2 text
FORM POPULATE_BDC.
DATA:L_COUNTER TYPE N,
L_STRING TYPE STRING.
LOOP AT IT_CUSTOMER.
AT NEW KUNNR.
CLEAR L_COUNTER.
L_INDEX = SY-TABIX.
READ TABLE IT_CUSTOMER INDEX L_INDEX.
perform bdc_dynpro using 'SAPMV10A' '0100'.
perform bdc_field using 'MV10A-KUNNR'
IT_CUSTOMER-KUNNR.
perform bdc_field using 'MV10A-VKORG'
IT_CUSTOMER-VKORG.
perform bdc_field using 'MV10A-VTWEG'
IT_CUSTOMER-VTWEG.
perform bdc_field using 'BDC_OKCODE'
'/00'.
ENDAT.
L_COUNTER = L_COUNTER + 1.
CLEAR L_STRING.
perform bdc_dynpro using 'SAPMV10A' '0200'.
CONCATENATE 'MV10A-MATNR(' L_COUNTER ')' INTO L_STRING.
perform bdc_field using L_STRING
IT_CUSTOMER-MATNR.
CONCATENATE 'MV10A-KDMAT(' L_COUNTER ')' INTO L_STRING.
perform bdc_field using L_STRING
IT_CUSTOMER-KDMAT.
CONCATENATE 'MV10A-MEGRU(' L_COUNTER ')' INTO L_STRING.
perform bdc_field using L_STRING
IT_CUSTOMER-MEGRU.
perform bdc_field using 'BDC_OKCODE'
'/00'.
*-- For Page down in Call Transaction Mode
IF L_COUNTER = 14.
CLEAR L_COUNTER.
PERFORM BDC_DYNPRO USING 'SAPMV45A' '4001'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=P+'.
ENDIF.
perform bdc_dynpro using 'SAPMV10A' '0200'.
CONCATENATE 'MV10A-SELKZ(' L_COUNTER ')' INTO L_STRING.
perform bdc_field using L_STRING
IT_CUSTOMER-SELKZ.
perform bdc_field using 'BDC_OKCODE'
'=SELE'.
perform bdc_dynpro using 'SAPMV10A' '0300'.
perform bdc_field using 'MV10A-KDMAT'
IT_CUSTOMER-KDMAT.
perform bdc_field using 'MV10A-LPRIO'
IT_CUSTOMER-LPRIO.
perform bdc_field using 'MV10A-ANTLF'
IT_CUSTOMER-ANTLF.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'/EBACK'.
at end of kunnr.
READ TABLE IT_CUSTOMER INDEX L_INDEX.
perform bdc_field using 'BDC_OKCODE'
'=SICH'.
CALL TRANSACTION 'VD51' USING IT_BDC MODE 'A' UPDATE 'S'
MESSAGES INTO IT_MESSAGES.
CLEAR IT_BDC.
REFRESH IT_BDC.
ENDAT.
IF NOT IT_MESSAGES[] IS INITIAL.
PERFORM FORMAT_MESSAGE.
ENDIF.
ENDLOOP.
ENDFORM. " POPULATE_BDC
*& Form bdc_dynpro
text
-->P_0273 text
-->P_0274 text
FORM bdc_dynpro USING VALUE(P_0273)
VALUE(P_0274).
IT_BDC-PROGRAM = P_0273.
IT_BDC-DYNPRO = P_0274.
IT_BDC-DYNBEGIN = 'X'.
APPEND IT_BDC.
CLEAR IT_BDC.
ENDFORM. " bdc_dynpro
*& Form bdc_field
text
-->P_0278 text
-->P_RECORD_KUNNR_001 text
FORM bdc_field USING VALUE(P_0278)
VALUE(P_0279).
IT_BDC-FNAM = P_0278.
IT_BDC-FVAL = P_0279.
APPEND IT_BDC.
CLEAR IT_BDC.
ENDFORM. " bdc_field
*& Form FORMAT_MESSAGE
text
--> p1 text
<-- p2 text
FORM FORMAT_MESSAGE.
DATA: L_MSG(100).
LOOP AT IT_MESSAGES.
READ TABLE IT_CUSTOMER INDEX L_INDEX.
CALL FUNCTION 'FORMAT_MESSAGE'
EXPORTING
ID = IT_MESSAGES-MSGID
LANG = SY-LANGU
NO = IT_MESSAGES-MSGNR
V1 = IT_MESSAGES-MSGV1
V2 = IT_MESSAGES-MSGV2
V3 = IT_MESSAGES-MSGV3
V4 = IT_MESSAGES-MSGV4
IMPORTING
MSG = L_MSG
EXCEPTIONS
NOT_FOUND = 1
OTHERS = 2.
IF SY-SUBRC <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
write:/ l_msg.
ENDLOOP.
ENDFORM. " FORMAT_MESSAGE
reward if helpful,
keerthi -
Problem in posting multiple documents in FB70 through BDC...
Hi,
I am facing a problem while posting multiple documents from a flat file in FB70 thourgh BDC batch input by using session method. However, the session is getting terminated after posting the first document. Please clarify my problem.
Below is a sample of the data in my flat file -
Customer,Invoice Date,Posting Date,Amount,G/L Account,Amount in doc. Curr.
34,03.06.2009,03.06.2009,100,211000,100
34,03.06.2009,03.06.2009,200,211000,200
34,03.06.2009,03.06.2009,300,211000,300
And below is the sample code of my program.
REPORT ZANI2_BDC_FB70
NO STANDARD PAGE HEADING LINE-SIZE 255.
TYPES: BEGIN OF TY_STR_FB70,
ACCNT(20) TYPE C, "Customer
BLDAT(20) TYPE C, "Invoice Date
BUDAT(20) TYPE C, "Posting Date
WRBTR(20) TYPE C, "Basic Data - Amount
HKONT(20) TYPE C, "G/L Account
ITEM_WRBTR(20) TYPE C,
"Line Item Amount In Document Currency
END OF TY_STR_FB70,
BEGIN OF TY_STR_FILEDATA,
FIELDS TYPE STRING,
END OF TY_STR_FILEDATA.
* data definition
* Batchinputdata of single transaction
DATA: BDCDATA LIKE BDCDATA OCCURS 0 WITH HEADER LINE,
* messages of call transaction
MESSTAB LIKE BDCMSGCOLL OCCURS 0 WITH HEADER LINE.
DATA: IT_STR_FILEDATA TYPE STANDARD TABLE OF TY_STR_FILEDATA,
WA_STR_FILEDATA TYPE TY_STR_FILEDATA,
IT_STR_FB70 TYPE STANDARD TABLE OF TY_STR_FB70,
WA_STR_FB70 TYPE TY_STR_FB70,
G_STR_FILENAME TYPE STRING,
G_FLG_ERROR TYPE I,
G_INDEX TYPE I,
G_STR_INDEX TYPE STRING,
G_STR_FIELDNAME TYPE STRING.
SELECTION-SCREEN BEGIN OF BLOCK INPUT.
PARAMETERS: P_FILE TYPE IBIPPARMS-PATH,
P_SES TYPE APQI-GROUPID.
SELECTION-SCREEN END OF BLOCK INPUT.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE.
CALL FUNCTION 'F4_FILENAME'
EXPORTING
PROGRAM_NAME = SYST-CPROG
DYNPRO_NUMBER = SYST-DYNNR
FIELD_NAME = 'P_FILE'
IMPORTING
FILE_NAME = P_FILE.
Continued in the next thread.....Continued from the previous thread.
PERFORM OPEN_GROUP.
G_INDEX = 1.
LOOP AT IT_STR_FB70 INTO WA_STR_FB70.
PERFORM BDC_DYNPRO USING 'SAPMF05A' '1200'.
PERFORM BDC_FIELD USING 'RF05A-BUSCS'
'R'.
"Customer
PERFORM BDC_FIELD USING 'INVFO-ACCNT'
WA_STR_FB70-ACCNT.
"Invoice Date
PERFORM BDC_FIELD USING 'INVFO-BLDAT'
WA_STR_FB70-BLDAT.
"Posting Date
PERFORM BDC_FIELD USING 'INVFO-BUDAT'
WA_STR_FB70-BUDAT.
"Basic data - Amount
PERFORM BDC_FIELD USING 'INVFO-WRBTR'
WA_STR_FB70-WRBTR.
PERFORM BDC_FIELD USING 'INVFO-WAERS'
'EUR'.
G_STR_INDEX = G_INDEX.
IF G_INDEX < 10.
CONCATENATE '0' G_STR_INDEX INTO G_STR_INDEX.
ENDIF.
CONDENSE G_STR_INDEX NO-GAPS.
CLEAR G_STR_FIELDNAME.
CONCATENATE 'ACGL_ITEM-WRBTR(' G_STR_INDEX ')' INTO
G_STR_FIELDNAME.
PERFORM BDC_FIELD USING 'BDC_CURSOR'
G_STR_FIELDNAME.
"'ACGL_ITEM-WRBTR(01)'.
"G/L Acct
CONCATENATE 'ACGL_ITEM-HKONT(' G_STR_INDEX ')' INTO
G_STR_FIELDNAME.
PERFORM BDC_FIELD USING G_STR_FIELDNAME
WA_STR_FB70-HKONT.
"Amount .
CONCATENATE 'ACGL_ITEM-WRBTR(' G_STR_INDEX ')' INTO
G_STR_FIELDNAME.
PERFORM BDC_FIELD USING G_STR_FIELDNAME
WA_STR_FB70-ITEM_WRBTR.
"PERFORM BDC_DYNPRO USING 'SAPMF05A' '1200'.
PERFORM BDC_FIELD USING 'BDC_OKCODE'
'=BU'.
CLEAR WA_STR_FB70.
ENDLOOP.
IF G_FLG_ERROR IS INITIAL.
PERFORM BDC_TRANSACTION USING 'FB70'.
ENDIF.
IF G_FLG_ERROR IS INITIAL.
PERFORM CLOSE_GROUP.
MESSAGE 'Session created successfully.' TYPE 'I'.
ENDIF.
ENDIF.
Continued in the next thread.. -
Urgent : Making heirarchy report by fetching data froma single table
Hi,
I am making a report in which i hae to display the data like this:-
If there is a material and it contains batch and that batch furhter conatins sub-batches of it.
The problem is dat all the data which is to be displayed is from the table CHVW and i am not able to display the data in hierarchy by fetching it from a single table.
plzz guide me how to do dis as it is really urgent and points will be deinftely rewarded.
help me out.
reagrds,
ric.s
Edited by: ric .s on Apr 30, 2008 10:31 AMHi,
Check the sample Report.
REPORT z_alv_hierseq_list.
Program with FM REUSE_ALV_HIERSEQ_LIST_DISPLAY *
TYPE-POOLS: slis. " ALV Global types
CONSTANTS :
c_x VALUE 'X',
c_gt_vbap TYPE slis_tabname VALUE 'GT_VBAP',
c_gt_vbak TYPE slis_tabname VALUE 'GT_VBAK'.
SELECTION-SCREEN :
SKIP, BEGIN OF LINE,COMMENT 5(27) v_1 FOR FIELD p_max. "#EC NEEDED
PARAMETERS p_max(02) TYPE n DEFAULT '10' OBLIGATORY.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN :
SKIP, BEGIN OF LINE,COMMENT 5(27) v_2 FOR FIELD p_expand. "#EC NEEDED
PARAMETERS p_expand AS CHECKBOX DEFAULT c_x.
SELECTION-SCREEN END OF LINE.
TYPES :
1st Table
BEGIN OF ty_vbak,
vbeln TYPE vbak-vbeln, " Sales document
kunnr TYPE vbak-kunnr, " Sold-to party
netwr TYPE vbak-netwr, " Net Value of the Sales Order
erdat TYPE vbak-erdat, " Creation date
waerk TYPE vbak-waerk, " SD document currency
expand TYPE xfeld,
END OF ty_vbak,
2nd Table
BEGIN OF ty_vbap,
vbeln TYPE vbap-vbeln, " Sales document
posnr TYPE vbap-posnr, " Sales document
matnr TYPE vbap-matnr, " Material number
arktx TYPE vbap-arktx, " Material description
netwr TYPE vbap-netwr, " Net Value of the Sales Order
waerk TYPE vbap-waerk, " SD document currency
END OF ty_vbap.
DATA :
1st Table
gt_vbak TYPE TABLE OF ty_vbak,
2nd Table
gt_vbap TYPE TABLE OF ty_vbap.
INITIALIZATION.
v_1 = 'Maximum of records to read'.
v_2 = 'With ''EXPAND'' field'.
START-OF-SELECTION.
Read Sales Document: Header Data
SELECT vbeln kunnr netwr waerk erdat
FROM vbak
UP TO p_max ROWS
INTO CORRESPONDING FIELDS OF TABLE gt_vbak.
IF gt_vbak[] IS NOT INITIAL.
Read Sales Document: Item Data
SELECT vbeln posnr matnr arktx netwr waerk
FROM vbap
INTO CORRESPONDING FIELDS OF TABLE gt_vbap
FOR ALL ENTRIES IN gt_vbak
WHERE vbeln = gt_vbak-vbeln.
ENDIF.
END-OF-SELECTION.
PERFORM f_display.
Form F_DISPLAY
FORM f_display.
Macro definition
DEFINE m_fieldcat.
ls_fieldcat-tabname = &1.
ls_fieldcat-fieldname = &2.
ls_fieldcat-ref_tabname = &3.
ls_fieldcat-cfieldname = &4. " Field with currency unit
append ls_fieldcat to lt_fieldcat.
END-OF-DEFINITION.
DEFINE m_sort.
ls_sort-tabname = &1.
ls_sort-fieldname = &2.
ls_sort-up = c_x.
append ls_sort to lt_sort.
END-OF-DEFINITION.
DATA:
ls_layout TYPE slis_layout_alv,
ls_keyinfo TYPE slis_keyinfo_alv,
ls_sort TYPE slis_sortinfo_alv,
lt_sort TYPE slis_t_sortinfo_alv," Sort table
ls_fieldcat TYPE slis_fieldcat_alv,
lt_fieldcat TYPE slis_t_fieldcat_alv." Field catalog
ls_layout-group_change_edit = c_x.
ls_layout-colwidth_optimize = c_x.
ls_layout-zebra = c_x.
ls_layout-detail_popup = c_x.
ls_layout-get_selinfos = c_x.
IF p_expand = c_x.
ls_layout-expand_fieldname = 'EXPAND'.
ENDIF.
Build field catalog and sort table
m_fieldcat c_gt_vbak 'VBELN' 'VBAK' ''.
m_fieldcat c_gt_vbak 'KUNNR' 'VBAK' ''.
m_fieldcat c_gt_vbak 'NETWR' 'VBAK' 'WAERK'.
m_fieldcat c_gt_vbak 'WAERK' 'VBAK' ''.
m_fieldcat c_gt_vbak 'ERDAT' 'VBAK' ''.
m_fieldcat c_gt_vbap 'POSNR' 'VBAP' ''.
m_fieldcat c_gt_vbap 'MATNR' 'VBAP' ''.
m_fieldcat c_gt_vbap 'ARKTX' 'VBAP' ''.
m_fieldcat c_gt_vbap 'NETWR' 'VBAP' 'WAERK'.
m_fieldcat c_gt_vbap 'WAERK' 'VBAP' ''.
m_sort c_gt_vbak 'KUNNR'.
m_sort c_gt_vbap 'NETWR'.
ls_keyinfo-header01 = 'VBELN'.
ls_keyinfo-item01 = 'VBELN'.
ls_keyinfo-item02 = 'POSNR'.
Dipslay Hierarchical list
CALL FUNCTION 'REUSE_ALV_HIERSEQ_LIST_DISPLAY'
EXPORTING
i_callback_program = sy-cprog
i_callback_user_command = 'USER_COMMAND'
is_layout = ls_layout
it_fieldcat = lt_fieldcat
it_sort = lt_sort
i_tabname_header = c_gt_vbak
i_tabname_item = c_gt_vbap
is_keyinfo = ls_keyinfo
i_save = 'A'
TABLES
t_outtab_header = gt_vbak
t_outtab_item = gt_vbap
EXCEPTIONS
program_error = 1
OTHERS = 2.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ENDFORM. " F_LIST_DISPLAY
Form USER_COMMAND *
FORM user_command USING i_ucomm TYPE sy-ucomm
is_selfield TYPE slis_selfield. "#EC CALLED
DATA ls_vbak TYPE ty_vbak.
CASE i_ucomm.
WHEN '&IC1'. " Pick
CASE is_selfield-tabname.
WHEN c_gt_vbap.
WHEN c_gt_vbak.
READ TABLE gt_vbak INDEX is_selfield-tabindex INTO ls_vbak.
IF sy-subrc EQ 0.
Sales order number
SET PARAMETER ID 'AUN' FIELD ls_vbak-vbeln.
Display Sales Order
CALL TRANSACTION 'VA03' AND SKIP FIRST SCREEN.
ENDIF.
ENDCASE.
ENDCASE.
ENDFORM. " USER_COMMAND
END OF PROGRAM Z_ALV_HIERSEQ_LIST ******************
Regards,
Raj.
Maybe you are looking for
-
How can I link to a jsp page from another jsp page within websphere portal?
Afternoon all, I have a websphere portlet which displays a jsp page. I want to put a hyperlink on the jsp page which when clicked will open another jsp page. Does anyone know how to do this? Thanks, Alex
-
How to find date of a site recorded in History
problem solved while expressing it!
-
Black to white gradient?
I am following a tutorial and need to select a fill for a shape and choose the Black to White Gradient swatch from Gradient Panel 1. I do not seem to have the black to white gradient. I only see the fade to black gradient swatch. Is this the same thi
-
Will I need to reinstall applications if I upgrade to Lion?
If upgrading from 10.6.8 to Lion, will I have to reinstall existing applications (such as MS Office, etc.)?
-
Hi Guru's I have BOM material with 10 sub materials and i also want to have some 10 cross selling items with this BOM. i have configured all settings and in sales order cross selling logo coming but materials POP UP is not coming, when i click cross