Problem in uploading multiple entries in BDC
Hi ,
I am using BDC to upload the data for transaction PR05. The condition is if trip number not there , i need to create one and for succesive records where trip number is not there I need to add the values of to the created line items . I am performing a CALL TRANSACTION for creating the trip number but when I go to the succesive records it is not able to select the trip created . I am using a single loop . Is it that I have to explicitly give a COMMIT after the first CALL TRANSACTION or change to update 'S". Please advise
Yes use update mode S (for synchronized update).
Synchronous processing. Updates of the called programs are executed in the same way as if in the COMMIT WORK statement the AND WAIT addition had been specified.
Kind regards,
Robert
Similar Messages
-
Long text problem while uploading Inspection plan through BDC.
Hi,
I am facing some problem while uploading the inspection plan. There are few MICs for which we are having long text, while uploading the inspection plan through BDC - some other long text is getting copied into the MIC's long text. After checking I came to know that in function module, read_text - some text which is stored in ABAP memory is getting copied into the inspection plan.
I am working in SAP release 4.7. I have checked with SAP notes: 97419, but it is also not satisfying.
Waiting for quick solution.
Thanks in advance.
FahiéHi a®s,
Thanks a lot for your kind reply.
My requirement is I want to maintain long text for few MICs (which are not having long texts at MIC level) in inspection plan (QP01).
When I am trying to manually assign the MIC's to inspection plan (QP01), long text is copied whereas I am not clicking the long text icon in (QP01). Long text is not maintained in MIC level, still some long text is copied to this MIC. This was also happening while uploading the inspection plan thro' BDC.
I believe what you have mentioned about function module SAVE_TEXT cannot be used here since long text is already copied before we pass the long text. Also if we pass some long text, still apart from the long text what we have passed there is some other long text copied (extra long text).
Waiting for quick solution.
Thanks in advance.
Fahié -
Problem in uploading multiple line items while Creating sales order by BAPI
Hi experts , Im able to create sales order with one item while using this program, but the problem is when iam having multiple items or multiple sales order , iam not able to createthe line items , though its creating sales order header , Iam copy pasting my code , please add the additional code to my code to take more than 1 line items ,This is urgent requirement . Points will be rewarded for answers , Thanks in advance
*& Report Z_SO_CREATE_BAPI
REPORT Z_SO_CREATE_BAPI.
DATA: i_header TYPE bapisdhd1 occurs 0 with header line.
DATA: i_details TYPE bapisditm OCCURS 0 WITH HEADER LINE.
DATA: i_partner TYPE bapiparnr OCCURS 0 WITH HEADER LINE.
DATA: i_return1 TYPE bapiret2 OCCURS 0 WITH HEADER LINE.
DATA: i_return2 TYPE bapiret2.
data : ORDER_HEADER_IN like BAPISDHD1.
data : ORDER_ITEMS_IN like BAPISDITM occurs 0 with HEADER LINE .
data : ORDER_ITEMS_INX Like BAPISDITMX occurs 0 with HEADER LINE .
data : RETURN like BAPIRET2 occurs 0 with header line.
data : ORDER_PARTNERS like BAPIPARNR occurs 0 with
header line.
DATA : ORDER_KEYS LIKE BAPISDKEY OCCURS 0 WITH HEADER
LiNE.
data : ORDER_SCHEDULES_IN like BAPISCHDL occurs 0 with
header line.
data : ORDER_SCHEDULES_INX like BAPISCHDLX occurs 0 with
header line.
data : BEGIN OF TAB OCCURS 0,
SRNO(4),
DOC_TYPE like ORDER_HEADER_IN-dOC_TYPE,
SALES_ORG LIKE ORDER_HEADER_IN-SALES_ORG,
DISTR_CHAN LIKE ORDER_HEADER_IN-DISTR_CHAN,
DIVISION like ORDER_HEADER_IN-DIVISION,
REQ_DATE_H(10),
PURCH_DATE(10),
PMNTTRMS LIKE ORDER_HEADER_IN-PMNTTRMS,
PURCH_NO_C LIKE ORDER_HEADER_IN-PURCH_NO_C,
ITM_NUMBER like BAPISDITM-ITM_NUMBER,
MATERIAL LIKE ORDER_ITEMS_IN-MATERIAL ,
PLANT LIKE ORDER_ITEMS_IN-PLANT,
TARGET_QTY LIKE ORDER_ITEMS_IN-TARGET_QTY,
ITM_NUMBERX like ORDER_ITEMS_INX-ITM_NUMBER ,
MATERIALX LIKE ORDER_ITEMS_INX-MATERIAL ,
CUST_MAT22 LIKE ORDER_ITEMS_IN-CUST_MAT22,
PLANTX LIKE ORDER_ITEMS_INX-PLANT,
TARGET_QTYX LIKE ORDER_ITEMS_INX-TARGET_QTY,
ITM_NUMBER LIKE ORDER_ITEMS_IN-ITM_NUMBER,
MATERIAL LIKE ORDER_ITEMS_IN-MATERIAL ,
PARTN_ROLE LIKE ORDER_PARTNERS-PARTN_ROLE,
PARTN_NUMB LIKE ORDER_PARTNERS-PARTN_NUMB,
END OF TAB.
DATA: v_vbeln TYPE bapivbeln-vbeln.
selection-screen begin of block b1 with frame.
skip 3.
parameter:p_infile like rlgrap-filename obligatory.
skip 3.
selection-screen end of block b1.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_infile.
PERFORM value_help.
start-of-selection.
CALL FUNCTION 'WS_UPLOAD'
EXPORTING
filename = p_infile
FILETYPE = 'DAT'
HAS_FIELD_SEPARATOR = 'X'
HEADER_LENGTH = 0
READ_BY_LINE = 'X'
DAT_MODE = ' '
CODEPAGE = ' '
IGNORE_CERR = ABAP_TRUE
REPLACEMENT = '#'
CHECK_BOM = ' '
VIRUS_SCAN_PROFILE =
NO_AUTH_CHECK = ' '
IMPORTING
FILELENGTH =
HEADER =
tables
data_tab = tab.
EXCEPTIONS
FILE_OPEN_ERROR = 1
FILE_READ_ERROR = 2
NO_BATCH = 3
GUI_REFUSE_FILETRANSFER = 4
INVALID_TYPE = 5
NO_AUTHORITY = 6
UNKNOWN_ERROR = 7
BAD_DATA_FORMAT = 8
HEADER_NOT_ALLOWED = 9
SEPARATOR_NOT_ALLOWED = 10
HEADER_TOO_LONG = 11
UNKNOWN_DP_ERROR = 12
ACCESS_DENIED = 13
DP_OUT_OF_MEMORY = 14
DISK_FULL = 15
DP_TIMEOUT = 16
OTHERS = 17
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
**Validation for the Create SO screen
*AT SELECTION-SCREEN ON BLOCK na_create.
Loop at Tab.
i_header-doc_type = TAB-DOC_TYPE .
i_header-sales_org = TAB-SALES_ORG.
i_header-distr_chan = TAB-DISTR_CHAN .
i_header-division = TAB-DIVISION .
append i_header.
*endloop.
i_partner-partn_role = TAB-PARTN_ROLE .
i_partner-partn_numb = TAB-PARTN_NUMB.
APPEND i_partner.
i_details-material = TAB-MATERIAL .
APPEND i_details.
endloop.
*Bapi for Creating SO
CALL FUNCTION 'BAPI_SALESORDER_CREATEFROMDAT2'
EXPORTING
SALESDOCUMENTIN = v_vbeln
order_header_in = i_header
ORDER_HEADER_INX =
SENDER =
BINARY_RELATIONSHIPTYPE =
INT_NUMBER_ASSIGNMENT =
BEHAVE_WHEN_ERROR =
LOGIC_SWITCH =
TESTRUN =
CONVERT = ' '
IMPORTING
SALESDOCUMENT = v_vbeln
tables
RETURN = i_return1
ORDER_ITEMS_IN = i_details
ORDER_ITEMS_INX = ORDER_ITEMS_INX
order_partners = i_partner .
ORDER_SCHEDULES_IN =
ORDER_SCHEDULES_INX =
ORDER_CONDITIONS_IN =
ORDER_CONDITIONS_INX =
ORDER_CFGS_REF =
ORDER_CFGS_INST =
ORDER_CFGS_PART_OF =
ORDER_CFGS_VALUE =
ORDER_CFGS_BLOB =
ORDER_CFGS_VK =
ORDER_CFGS_REFINST =
ORDER_CCARD =
ORDER_TEXT =
ORDER_KEYS =
EXTENSIONIN =
PARTNERADDRESSES =
IF NOT v_vbeln IS INITIAL.
*Bapi Commit Work
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
WAIT =
IMPORTING
return = i_return2
ELSE.
CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'
IMPORTING
RETURN =
ENDIF.
LOOP AT i_return1 . "INTO wa_return1.
WRITE:/ i_return1-message.
ENDLOOP.
FORM value_help .
CALL FUNCTION 'DSVAS_DOC_WS_FILENAME_GET_50'
EXPORTING
DEF_FILENAME = ' '
DEF_PATH = ' '
MASK = ',.,..'
MODE = 'O'
TITLE = ' '
IMPORTING
FILENAME = p_infile
EXCEPTIONS
INV_WINSYS = 1
NO_BATCH = 2
SELECTION_CANCEL = 3
SELECTION_ERROR = 4
OTHERS = 5.
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.
txt file data
order type salesorg distch divison materialno parter role
TA PB01 01 00 000000000000000852 WE
Partner no
8101000000Hi Neerja,
you can reffer this sample code. It may not be complet soluation for your poblem,
but you will get some idea.
*& Report ZBAPI_SALESORDER_CREATE
*& Author : Karthik
REPORT ZBAPI_SALESORDER_CREATE.
data : ORDER_HEADER_IN like BAPISDHD1.
data : ORDER_ITEMS_IN like BAPISDITM occurs 0 with
header line.
data : RETURN like BAPIRET2 occurs 0 with header line.
data : ORDER_PARTNERS like BAPIPARNR occurs 0 with
header line.
DATA : ORDER_KEYS LIKE BAPISDKEY OCCURS 0 WITH HEADER
LINE.
data : ORDER_SCHEDULES_IN like BAPISCHDL occurs 0 with
header line.
data : BEGIN OF TAB OCCURS 0,
SRNO(4),
DOC_TYPE like ORDER_HEADER_IN-dOC_TYPE,
SALES_ORG LIKE ORDER_HEADER_IN-SALES_ORG,
DISTR_CHAN LIKE ORDER_HEADER_IN-DISTR_CHAN,
DIVISION like ORDER_HEADER_IN-DIVISION,
REQ_DATE_H(10),
PURCH_DATE(10),
PMNTTRMS LIKE ORDER_HEADER_IN-PMNTTRMS,
PURCH_NO_C LIKE ORDER_HEADER_IN-PURCH_NO_C,
ITM_NUMBER like BAPISDITM-ITM_NUMBER,
CUST_MAT22 LIKE ORDER_ITEMS_IN-CUST_MAT22,
PLANT LIKE ORDER_ITEMS_IN-PLANT,
TARGET_QTY LIKE ORDER_ITEMS_IN-TARGET_QTY,
PARTN_ROLE LIKE ORDER_PARTNERS-PARTN_ROLE,
PARTN_NUMB LIKE ORDER_PARTNERS-PARTN_NUMB,
END OF TAB.
data: itab1 like alsmex_tabline occurs 0 with header
line.
DATA: gd_currentrow type i.
data : PURCHASEORDER like ekko-ebeln.
Data: tot_rec type i, "Total Records
gd_update type i, "Main Table Increement Counter
gd_lines type i, "Success Table increement Counter
w_textout like t100-text. "VARIABLE TO GET ERRORLOG
data : begin of it_success occurs 0,
SALESDOCUMENT LIKE BAPIVBELN-VBELN, "PROJECT
end of it_success.
data : begin of it_error occurs 0,
srno(4),
err_msg(73) TYPE c, "TO RETREIVE ERROR MESSAGES
end of it_error.
data : srno(4).
DATA : SALESDOCUMENT LIKE BAPIVBELN-VBELN.
selection-screen begin of block b1 with frame.
skip 3.
parameter:p_infile like rlgrap-filename obligatory.
skip 3.
selection-screen end of block b1.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_infile.
PERFORM value_help.
start-of-selection.
call function 'ALSM_EXCEL_TO_INTERNAL_TABLE'
EXPORTING
filename = p_infile
i_begin_col = '1'
i_begin_row = '2' "Do not require
headings
i_end_col = '22'
i_end_row = '10000'
TABLES
intern = itab1
EXCEPTIONS
inconsistent_parameters = 1
upload_ole = 2
others = 3.
if sy-subrc <> 0.
message e010(zz) with text-001. "Problem uploading
Excel Spreadsheet
endif.
*perform open_group.
sort itab1 by row col.
Get first row retrieved
read table itab1 index 1.
Set first row retrieved to current row
gd_currentrow = itab1-row.
loop at itab1.
Reset values for next row
if itab1-row ne gd_currentrow.
append tab .
clear tab.
gd_currentrow = itab1-row.
endif.
SHIFT ITAB1-VALUE LEFT DELETING LEADING SPACE.
case itab1-col.
when '0001'.
TAB-SRNO = itab1-value.
when '0002'.
TAB-DOC_TYPE = itab1-value.
when '0003'.
TAB-SALES_ORG = itab1-value.
when '0004'.
TAB-DISTR_CHAN = itab1-value.
when '0005'.
TAB-DIVISION = itab1-value.
when '0006'.
TAB-REQ_DATE_H = itab1-value.
when '0006'.
TAB-PURCH_DATE = itab1-value.
when '0007'.
TAB-PMNTTRMS = itab1-value.
when '0008'.
TAB-PURCH_NO_C = itab1-value.
when '0009'.
TAB-ITM_NUMBER = itab1-value.
when '0010'.
TAB-CUST_MAT22 = itab1-value.
when '0011'.
TAB-PLANT = itab1-value.
when '0012'.
TAB-TARGET_QTY = itab1-value.
when '0013'.
TAB-PARTN_ROLE = itab1-value.
when '0014'.
TAB-PARTN_NUMB = itab1-value.
endcase.
endloop.
append tab.
clear tab.
sort tab by SRNO.
LOOP AT TAB.
concatenate tab-REQ_DATE_H+4(4)
tab-REQ_DATE_H2(2) tab-REQ_DATE_H0(2) into
tab-REQ_DATE_H.
concatenate tab-PURCH_DATE+4(4)
tab-PURCH_DATE2(2) tab-PURCH_DATE0(2) into
tab-PURCH_DATE.
SRNO = TAB-SRNO.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
INPUT = tab-PARTN_NUMB
IMPORTING
OUTPUT = tab-PARTN_NUMB.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
INPUT = tab-CUST_MAT22
IMPORTING
OUTPUT = tab-CUST_MAT22.
IF TAB-SRNO = SRNO.
ORDER_HEADER_IN-DOC_TYPE = TAB-DOC_TYPE.
ORDER_HEADER_IN-SALES_ORG = TAB-SALES_ORG.
ORDER_HEADER_IN-DISTR_CHAN = TAB-DISTR_CHAN.
ORDER_HEADER_IN-REQ_DATE_H = TAB-REQ_DATE_H.
ORDER_HEADER_IN-PURCH_DATE = TAB-PURCH_DATE.
ORDER_HEADER_IN-PMNTTRMS = TAB-PMNTTRMS.
ORDER_HEADER_IN-PURCH_NO_C = TAB-PURCH_NO_C.
ORDER_HEADER_IN-DIVISION = tab-DIVISION.
ORDER_ITEMS_IN-ITM_NUMBER = tab-ITM_NUMBER.
ORDER_ITEMS_IN-material = TAB-CUST_MAT22.
ORDER_ITEMS_IN-PLANT = TAB-PLANT.
APPEND ORDER_ITEMS_IN.
ORDER_PARTNERS-PARTN_ROLE = TAB-PARTN_ROLE.
ORDER_PARTNERS-PARTN_NUMB = TAB-PARTN_NUMB.
APPEND ORDER_PARTNERS.
ORDER_SCHEDULES_IN-ITM_NUMBER = tab-ITM_NUMBER.
ORDER_SCHEDULES_IN-REQ_QTY = tab-TARGET_QTY.
append ORDER_SCHEDULES_IN.
ENDIF.
AT END OF SRNO.
CALL FUNCTION 'BAPI_SALESORDER_CREATEFROMDAT2'
EXPORTING
SALESDOCUMENTIN =
ORDER_HEADER_IN = ORDER_HEADER_IN
ORDER_HEADER_INX =
SENDER =
BINARY_RELATIONSHIPTYPE =
INT_NUMBER_ASSIGNMENT =
BEHAVE_WHEN_ERROR =
LOGIC_SWITCH =
TESTRUN =
CONVERT = ' '
IMPORTING
SALESDOCUMENT = SALESDOCUMENT
TABLES
RETURN = RETURN
ORDER_ITEMS_IN = ORDER_ITEMS_IN
ORDER_ITEMS_INX =
ORDER_PARTNERS = ORDER_PARTNERS
ORDER_SCHEDULES_IN = ORDER_SCHEDULES_IN
ORDER_SCHEDULES_INX =
ORDER_CONDITIONS_IN =
ORDER_CONDITIONS_INX =
ORDER_CFGS_REF =
ORDER_CFGS_INST =
ORDER_CFGS_PART_OF =
ORDER_CFGS_VALUE =
ORDER_CFGS_BLOB =
ORDER_CFGS_VK =
ORDER_CFGS_REFINST =
ORDER_CCARD =
ORDER_TEXT =
ORDER_KEYS = ORDER_KEYS
EXTENSIONIN =
PARTNERADDRESSES =
IF SALESDOCUMENT <> SPACE.
commit work.
ADD 1 TO gd_update.
it_success-SALESDOCUMENT = SALESDOCUMENT.
append it_success.
CLEAR :SALESDOCUMENT,ORDER_HEADER_IN.
REFRESH : RETURN,ORDER_ITEMS_IN,ORDER_PARTNERS.
ELSE.
loop at return.
it_error-SRNO = tab-SRNO.
it_error-err_msg = return-MESSAGE .
Append it_error.
ENDLOOP.
CLEAR :SALESDOCUMENT,ORDER_HEADER_IN.
REFRESH : RETURN,ORDER_ITEMS_IN,ORDER_PARTNERS.
ENDIF.
endat.
endloop.
DESCRIBE TABLE it_success LINES gd_lines.
IF gd_lines GT 0.
Display result report column headings
PERFORM display_column_headings.
Display result report
PERFORM DISPLAY_SUCESS.
ENDIF.
IF SUCESS FAILS Display Error Report
DESCRIBE TABLE it_error LINES gd_lines.
IF gd_lines GT 0.
PERFORM errorheadings.
PERFORM errorreport.
ENDIF.
*& Form display_column_headings
text
FORM display_column_headings.
WRITE:2 ' Success Report '(014) COLOR COL_POSITIVE.
SKIP.
WRITE:2 'The following records inserted
successfully:'(013).
WRITE:/ sy-uline(15).
FORMAT COLOR COL_HEADING.
WRITE:/ sy-vline,
(10) 'Sales order'(004), sy-vline.
WRITE:/ sy-uline(15).
ENDFORM. "display_column_headings
*Subroutine to display SUCESS REPORT
FORM DISPLAY_SUCESS.
FORMAT COLOR COL_NORMAL.
LOOP AT it_success.
WRITE:/ sy-vline,
(10) it_success-SALESDOCUMENT, sy-vline.
CLEAR it_success.
ENDLOOP.
WRITE:/ sy-uline(15).
REFRESH: it_success.
FORMAT COLOR COL_BACKGROUND.
ENDFORM. "
DISPLAY_REPORT
*& Form errorreport
text
FORM errorreport.
LOOP AT it_error.
WRITE:/ sy-vline,
(10) it_error-SRNO, sy-vline,
(40) it_error-err_msg, sy-vline.
ENDLOOP.
WRITE:/ sy-uline(104).
REFRESH: it_error.
endform. "errorreport
*& Form ERRORHEADINGS
text
FORM ERRORHEADINGS.
SKIP.
WRITE:2 ' Error Report '(007) COLOR COL_NEGATIVE.
SKIP.
WRITE:2 'The following records failed during
update:'(008).
WRITE:/ sy-uline(104).
FORMAT COLOR COL_HEADING.
WRITE:/ sy-vline,
(10) 'ERROR.'(009), sy-vline.
WRITE:/ sy-uline(104).
FORMAT COLOR COL_NORMAL.
ENDFORM. "ERRORHEADINGS
**& Form value_help
text
--> p1 text
<-- p2 text
FORM value_help .
CALL FUNCTION 'DSVAS_DOC_WS_FILENAME_GET_50'
EXPORTING
DEF_FILENAME = ' '
DEF_PATH = ' '
MASK = ',.,..'
MODE = 'O'
TITLE = ' '
IMPORTING
FILENAME = p_infile
EXCEPTIONS
INV_WINSYS = 1
NO_BATCH = 2
SELECTION_CANCEL = 3
SELECTION_ERROR = 4
OTHERS = 5.
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. "value_help
Regards,
Amit. -
Hi All,
I want to upload Purcase details thro BAPI_PO_create1.I am able to upload PO for single line item. If i pass multiple line items i am getting error.
Error is "Purchase order still contails faulty items".
Pls see my code,and help to solve this pls.Thanks in Advance.
*iTEM 1
ls_poitem-po_item = '00010'.
ls_poitemx-po_item = '00010'.
ls_poitemx-po_itemx = 'X'.
ls_poitem-material = '11C650004'.
ls_poitemx-material = 'X'.
ls_poitem-MATL_GROUP = '125'.
ls_poitemx-MATL_GROUP = 'X'.
LS_POITEM-STGE_LOC = '1101'.
LS_POITEMX-STGE_LOC = 'X'.
MATERIAL DESCRIPTION.
SELECT SINGLE MAKTX
FROM MAKT
INTO ls_poitem-short_text
WHERE MATNR = ls_poitem-material AND
SPRAS = 'EN'.
ls_poitemx-short_text = 'X'.
ls_poitem-quantity = '100'.
ls_poitemx-quantity = 'X'.
ls_poitem-po_unit = 'KG'.
ls_poitemx-po_unit = 'X'.
ls_poitem-po_unit_iso = 'KG'.
ls_poitemx-po_unit_iso = 'X'.
ls_poitem-net_price = '220.57'.
ls_poitemx-net_price = 'X'.
ls_poitem-price_unit = '1'.
ls_poitemx-price_unit = 'X'.
LS_POITEM-TAX_CODE = 'NT'.
LS_POITEMX-TAX_CODE = 'X'.
LS_POITEM-ACCTASSCAT = 'F'.
LS_POITEMX-ACCTASSCAT = 'X'.
ls_poitem-plant = '1100'.
ls_poitemx-plant = 'X'.
APPEND : ls_poitem TO gt_poitem,
ls_poitemx TO gt_poitemx.
CLEAR:LS_POITEM,LS_POITEMX.
ITEM 2
ls_poitem-po_item = '00020'.
ls_poitemx-po_item = '00020'.
ls_poitemx-po_itemx = 'X'.
ls_poitem-material = '11C650003'.
ls_poitemx-material = 'X'.
MATERIAL DESCRIPTION.
SELECT SINGLE MAKTX
FROM MAKT
INTO ls_poitem-short_text
WHERE MATNR = ls_poitem-material AND
SPRAS = 'EN'.
ls_poitemx-short_text = 'X'.
ls_poitem-quantity = '100'.
ls_poitemx-quantity = 'X'.
ls_poitem-po_unit = 'KG'.
ls_poitemx-po_unit = 'X'.
ls_poitem-po_unit_iso = 'KG'.
ls_poitemx-po_unit_iso = 'X'.
ls_poitem-net_price = '230.57'.
ls_poitemx-net_price = 'X'.
ls_poitem-price_unit = '1'.
ls_poitemx-price_unit = 'X'.
LS_POITEM-TAX_CODE = 'NT'.
LS_POITEMX-TAX_CODE = 'X'.
LS_POITEM-ACCTASSCAT = 'F'.
LS_POITEMX-ACCTASSCAT = 'X'.
ls_poitem-plant = '1100'.
ls_poitemx-plant = 'X'.
APPEND : ls_poitem TO gt_poitem,
ls_poitemx TO gt_poitemx.
CLEAR:LS_POITEM,LS_POITEMX.Hi Sree,
Thanks for ur reply. After i passed storage location the PO is created.
One more problem is multiple schedule line is not created.It considers only the first line alone.
If possible can u pls give some ideas to solve the problem
Thanks. -
HANDLING MULTIPLE ENTRIES IN THE INTERNAL TABLE
Hi guys,
I got some problem with handling multiple entries from database table. I am retriving four fields and an amount field from the database table and creatinf a file to upload in the application server.But the file has to be taken like below.
If the four fields which i am retrieving are repeated then we have to take the net amount and make all the entries as one record. else if any of the four fields vary then i have to take it as a seperate record in the internal table. So how can we do this !! I have tried AT NEW and some other logics too but could get the exact one.
Pls help me out ASAP....I think I may have misunderstood your problem. If you have an exactly match(all four fields), only then you need to collect, right?
Try this example.
report zrich_0002.
data: begin of itab occurs 0,
field1(10) type c,
field2(10) type c,
field3(10) type c,
field4 type p decimals 2,
end of itab.
data: begin of icheck occurs 0,
field1(10) type c,
field2(10) type c,
field3(10) type c,
field4 type p decimals 2,
end of icheck.
data: begin of itab2 occurs 0,
field1(10) type c,
field2(10) type c,
field3(10) type c,
field4 type p decimals 2,
end of itab2.
start-of-selection.
itab-field1 = 'A'.
itab-field2 = 'B'.
itab-field3 = 'C'.
itab-field4 = '123.45'.
append itab.
itab-field1 = 'A'.
itab-field2 = 'B'.
itab-field3 = 'C'.
itab-field4 = '123.45'.
append itab.
itab-field1 = 'A'.
itab-field2 = 'B'.
itab-field3 = 'C'.
itab-field4 = '123.45'.
append itab.
itab-field1 = 'A'.
itab-field2 = 'B'.
itab-field3 = 'C'.
itab-field4 = '678.90'.
append itab.
loop at itab.
read table icheck with key field1 = itab-field1
field2 = itab-field2
field3 = itab-field3
field4 = itab-field4.
if sy-subrc = 0.
move-corresponding itab to itab2.
collect itab2.
else.
move-corresponding itab to icheck.
append icheck.
move-corresponding itab to itab2.
append itab2.
endif.
endloop.
check sy-subrc = 0.
Regards,
Rich Heilman -
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.. -
How to uploade multiple flatfiles for single transaction using BDC?
How to uploade multiple flatfiles for single transaction using BDC?
Hi,
You need to upload all data files into an internal table first either using OPEN DATASET (application server files) or GUI_UPLOAD (PC files).
Then loop at the internal table and call BDC transaction to process the data.
Regards,
Ferry Lianto -
LSMW Recording for CLW1 - Multiple entries
Hi,
I am doing a recording in LSMW for Tcode CLW1. This I thought was relatively simple but I have an issue with the second screen after the first screen is processed. The second screen has multiple entries for this Hierarchy level. I am reading an excel spreadsheet that the users created for the Hierarchy level assignments. There are multiple records for the same Hierarchy level but with different Hierarchy level assignments that need to populate the second screen. Also, I don't know how many entries this second screen will take for the HL assignments. I know one of the business users told me one Hierarchy level has 98 different HL assignments! I have searched on the internet and in the forum to try and find the resolution to this problem, with no luck yet. I am hoping someone out there has had this same issue. I know I can add a loop to the LSMW code but I'm not sure how to handle it. I am new to LSMW (Also ABAP only a year) and am learning but need a little guidance if possible or maybe some code examples.
Thanks for you time and knowledge in advance!Hi,
The same problem we have faced. As it is having multiple entries in second level. It is easy to do with BDC Program than LSMW. U can use table control logic in BDC, So that You can easily upload the data.
Rewardpoint if useful.
Regards
(YUGANDHAR.P) -
SystemManager.as : 'should never get here' when uploading multiple files
I have a code for uploading multiple files. The code works so that when complete event from the first upload is received, the second upload is started. The code works fine on Flash Player 9, but now when I changed my compiler settings to require version 10, the program no longer works.
Also this only seems to occur when I execute the code from the Flash Builder. I have compiled the code with ant requiring FP version 10. This swf is bundled inside a war and can executed without any problems. I actually set the ant compiler to require FP 10 some time ago already.
I get error 2174, which is for trying to upload multiple files at the same time. Although, I don't understand why I get this, since the uploads should not be done simultaneously as I explained above.
The interesting thing here is when I try to debug it. At some point when stepping in the code, I get the following error thrown. It's thrown by the code pasted at the end. Interesting is the else block that throws the error, the comment says 'should never get here'.
A bug in the framework or in Flex Builder?
Using IE 8 with FP 10.0.32.18 (on Win XP if that matters).
Thanks.
Error
at mx.managers::SystemManager/updateLastActiveForm()[C:\autobuild\3.2.0\frameworks\projects\framework\src\mx\managers\SystemManager.as:5087]
at mx.managers::SystemManager/activateForm()[C:\autobuild\3.2.0\frameworks\projects\framework\src\mx\managers\SystemManager.as:2352]
at mx.managers::SystemManager/activate()[C:\autobuild\3.2.0\frameworks\projects\framework\src\mx\managers\SystemManager.as:2307]
at mx.managers::FocusManager/creationCompleteHandler()[C:\autobuild\3.2.0\frameworks\projects\framework\src\mx\managers\FocusManager.as:1592]
at flash.events::EventDispatcher/dispatchEventFunction()
at flash.events::EventDispatcher/dispatchEvent()
at mx.core::UIComponent/dispatchEvent()[C:\autobuild\3.2.0\frameworks\projects\framework\src\mx\core\UIComponent.as:9298]
at mx.core::UIComponent/set initialized()[C:\autobuild\3.2.0\frameworks\projects\framework\src\mx\core\UIComponent.as:1169]
at mx.managers::LayoutManager/doPhasedInstantiation()[C:\autobuild\3.2.0\frameworks\projects\framework\src\mx\managers\LayoutManager.as:718]
at Function/http://adobe.com/AS3/2006/builtin::apply()
at mx.core::UIComponent/callLaterDispatcher2()[C:\autobuild\3.2.0\frameworks\projects\framework\src\mx\core\UIComponent.as:8628]
at mx.core::UIComponent/callLaterDispatcher()[C:\autobuild\3.2.0\frameworks\projects\framework\src\mx\core\UIComponent.as:8568]
private function updateLastActiveForm():void
// find "form" in the forms array and move that entry to
// the end of the array.
var n:int = forms.length;
if (n < 2)
return; // zero or one forms, no need to update
var index:int = -1;
for (var i:int = 0; i < n; i++)
if (areFormsEqual(form, forms[i]))
index = i;
break;
if (index >= 0)
forms.splice(index, 1);
forms.push(form);
else
throw new Error(); // should never get hereThanks for the reply Alex.
In both cases the URL is http. The only difference is that in one case everything is on server inside a war running on Tomcat to which I make connection via browser. In the other case the server side stuff is running on local computer on Tomcat and the Flex code is not bundled inside the war.
In both cases the URL is in form of http://... When running locally, the URL is http://localhost:8080/myAppName. I don't know how the network card driver translates this URL, but what you said might have something to do with it. -
How to insert multiple entries in table control
Hi All,
I want to insert multiple entries in table control in BDC program.Can any body help in this regard.
Thanks,
Satish.Hi,
Go through the following 2 example programs:
THis is example to upload the Bank details of the Vendor which has the TC.
REPORT zprataptable2
NO STANDARD PAGE HEADING LINE-SIZE 255.
DATA : BEGIN OF itab OCCURS 0,
i1 TYPE i,
lifnr LIKE rf02k-lifnr,
bukrs LIKE rf02k-bukrs,
ekorg LIKE rf02k-ekorg,
ktokk LIKE rf02k-ktokk,
anred LIKE lfa1-anred,
name1 LIKE lfa1-name1,
sortl LIKE lfa1-sortl,
land1 LIKE lfa1-land1,
akont LIKE lfb1-akont,
fdgrv LIKE lfb1-fdgrv,
waers LIKE lfm1-waers,
END OF itab.
DATA : BEGIN OF jtab OCCURS 0,
j1 TYPE i,
banks LIKE lfbk-banks,
bankl LIKE lfbk-bankl,
bankn LIKE lfbk-bankn,
END OF jtab.
DATA : cnt(4) TYPE n.
DATA : fdt(20) TYPE c.
DATA : c TYPE i.
INCLUDE bdcrecx1.
START-OF-SELECTION.
CALL FUNCTION 'WS_UPLOAD'
EXPORTING
filename = 'C:\first1.txt'
filetype = 'DAT'
TABLES
data_tab = itab.
CALL FUNCTION 'WS_UPLOAD'
EXPORTING
filename = 'C:\second.txt'
filetype = 'DAT'
TABLES
data_tab = jtab.
LOOP AT itab.
PERFORM bdc_dynpro USING 'SAPMF02K' '0100'.
PERFORM bdc_field USING 'BDC_CURSOR'
'RF02K-KTOKK'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
PERFORM bdc_field USING 'RF02K-LIFNR'
itab-lifnr.
PERFORM bdc_field USING 'RF02K-BUKRS'
itab-bukrs.
PERFORM bdc_field USING 'RF02K-EKORG'
itab-ekorg.
PERFORM bdc_field USING 'RF02K-KTOKK'
itab-ktokk.
PERFORM bdc_dynpro USING 'SAPMF02K' '0110'.
PERFORM bdc_field USING 'BDC_CURSOR'
'LFA1-LAND1'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
PERFORM bdc_field USING 'LFA1-ANRED'
itab-anred.
PERFORM bdc_field USING 'LFA1-NAME1'
itab-name1.
PERFORM bdc_field USING 'LFA1-SORTL'
itab-sortl.
PERFORM bdc_field USING 'LFA1-LAND1'
itab-land1.
PERFORM bdc_dynpro USING 'SAPMF02K' '0120'.
PERFORM bdc_field USING 'BDC_CURSOR'
'LFA1-KUNNR'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
PERFORM bdc_dynpro USING 'SAPMF02K' '0130'.
PERFORM bdc_field USING 'BDC_CURSOR'
'LFBK-BANKN(01)'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=ENTR'.
cnt = 0.
LOOP AT jtab WHERE j1 = itab-i1.
cnt = cnt + 1.
CONCATENATE 'LFBK-BANKS(' cnt ')' INTO fdt.
PERFORM bdc_field USING fdt jtab-banks.
CONCATENATE 'LFBK-BANKL(' cnt ')' INTO fdt.
PERFORM bdc_field USING fdt jtab-bankl.
CONCATENATE 'LFBK-BANKN(' cnt ')' INTO fdt.
PERFORM bdc_field USING fdt jtab-bankn.
IF cnt = 5.
cnt = 0.
PERFORM bdc_dynpro USING 'SAPMF02K' '0130'.
PERFORM bdc_field USING 'BDC_CURSOR'
'LFBK-BANKS(01)'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=P+'.
PERFORM bdc_dynpro USING 'SAPMF02K' '0130'.
PERFORM bdc_field USING 'BDC_CURSOR'
'LFBK-BANKN(02)'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=ENTR'.
ENDIF.
ENDLOOP.
PERFORM bdc_dynpro USING 'SAPMF02K' '0130'.
PERFORM bdc_field USING 'BDC_CURSOR'
'LFBK-BANKS(01)'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=ENTR'.
PERFORM bdc_dynpro USING 'SAPMF02K' '0210'.
PERFORM bdc_field USING 'BDC_CURSOR'
'LFB1-FDGRV'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
PERFORM bdc_field USING 'LFB1-AKONT'
itab-akont.
PERFORM bdc_field USING 'LFB1-FDGRV'
itab-fdgrv.
PERFORM bdc_dynpro USING 'SAPMF02K' '0215'.
PERFORM bdc_field USING 'BDC_CURSOR'
'LFB1-ZTERM'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
PERFORM bdc_dynpro USING 'SAPMF02K' '0220'.
PERFORM bdc_field USING 'BDC_CURSOR'
'LFB5-MAHNA'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
PERFORM bdc_dynpro USING 'SAPMF02K' '0310'.
PERFORM bdc_field USING 'BDC_CURSOR'
'LFM1-WAERS'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
PERFORM bdc_field USING 'LFM1-WAERS'
itab-waers.
PERFORM bdc_dynpro USING 'SAPMF02K' '0320'.
PERFORM bdc_field USING 'BDC_CURSOR'
'RF02K-LIFNR'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=ENTR'.
PERFORM bdc_dynpro USING 'SAPLSPO1' '0300'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=YES'.
PERFORM bdc_transaction USING 'XK01'.
ENDLOOP.
PERFORM close_group.
ABAP Name : ZMM_PR_UPLOAD_MAT
Description : PR Upload BDC Program(With Material)
Created by : Anji Reddy V
Created on : 04/11/2004
Description : This Program is used to Upload the Purchase
Requisition data Using the Transaction ME51N.
Modification Log:
Date Programmer Correction Description
04/11/2004 Anji Reddy Initial
REPORT zmm_pr_upload_mat
NO STANDARD PAGE HEADING
LINE-SIZE 255.
Standard Include for Selection Screen
INCLUDE bdcrecx1.
Internal Table for Upload Data
DATA: BEGIN OF i_pr OCCURS 0,
Header Screen
sno(3), " SNo
bsart(004), " PR Type
epstp(001), " Item Category
knttp(001), " Account Assignment
eeind(010), " Delivery Date
lpein(001), " Category of Del Date
werks(004), " Plant
lgort(004), " Storage Location
ekgrp(003), " Purchasing Group
matkl(009), " Material Group
bednr(010), " Tracking No
afnam(012), " Requisitioner
Item Details
matnr(018), " Material No
menge(017), " Quantity
badat(010),
frgdt(010),
preis(014), " Valuation Price
waers(005), " Currency
peinh(005),
wepos(001),
repos(001),
sakto(010), " GL Account
kostl(010), " Cost Center
bnfpo(005),
END OF i_pr.
Internal Table for header Data
DATA: BEGIN OF it_header OCCURS 0,
sno(3), " SNo
bsart(004), " PR Type
epstp(001), " Item Category
knttp(001), " Account Assignment
eeind(010), " Delivery Date
werks(004), " Plant
lgort(004), " Storage Location
ekgrp(003), " Purchasing Group
matkl(009), " Material Group
bednr(010), " Tracking No
afnam(012), " Requisitioner
END OF it_header.
Internal Table for Item Data
DATA: BEGIN OF it_item OCCURS 0,
sno(3), " SNo
matnr(018), " Material No
menge(017), " Quantity
preis(014), " Valuation Price
sakto(010), " GL Account
kostl(010), " Cost Center
END OF it_item.
Data Variables & Constants
CONSTANTS : c_x VALUE 'X'. " Flag
DATA : v_l(2), " Counter
v_rowno(5), " Row No
v_2(2), " Counter
v_rows LIKE sy-srows, " Rows in TC
v_field(45). " String
Parameters
PARAMETERS: p_file LIKE ibipparms-path. " Filename
At selection-screen on Value Request for file Name
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
Get the F4 Values for the File
CALL FUNCTION 'F4_FILENAME'
EXPORTING
program_name = syst-cprog
dynpro_number = syst-dynnr
IMPORTING
file_name = p_file.
Start of Selection
START-OF-SELECTION.
Open the BDC Session
PERFORM open_group.
Upload the File into internal Table
CALL FUNCTION 'UPLOAD'
EXPORTING
filename = p_file
filetype = 'DAT'
TABLES
data_tab = i_pr
EXCEPTIONS
conversion_error = 1
invalid_table_width = 2
invalid_type = 3
no_batch = 4
unknown_error = 5
gui_refuse_filetransfer = 6
OTHERS = 7.
IF sy-subrc <> 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
SORT i_pr BY sno.
LOOP AT i_pr.
MOVE-CORRESPONDING i_pr TO it_item.
APPEND it_item.
CLEAR it_item.
AT END OF sno.
READ TABLE i_pr INDEX sy-tabix.
MOVE-CORRESPONDING i_pr TO it_header.
APPEND it_header.
CLEAR it_header.
ENDAT.
ENDLOOP.
SORT it_header BY sno.
SORT it_item BY sno.
v_rows = sy-srows - 6.
Upload the Data from Internal Table
LOOP AT it_header.
Header Data
PERFORM bdc_dynpro USING 'SAPMM06B' '0100'.
PERFORM bdc_field USING 'BDC_CURSOR'
'EBAN-BEDNR'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
PERFORM bdc_field USING 'EBAN-BSART'
it_header-bsart.
PERFORM bdc_field USING 'RM06B-EPSTP'
it_header-epstp.
PERFORM bdc_field USING 'EBAN-KNTTP'
it_header-knttp.
PERFORM bdc_field USING 'RM06B-EEIND'
it_header-eeind.
PERFORM bdc_field USING 'RM06B-LPEIN'
it_header-lpein.
PERFORM bdc_field USING 'EBAN-WERKS'
it_header-werks.
PERFORM bdc_field USING 'EBAN-LGORT'
it_header-lgort.
PERFORM bdc_field USING 'EBAN-EKGRP'
it_header-ekgrp.
PERFORM bdc_field USING 'EBAN-MATKL'
it_header-matkl.
PERFORM bdc_field USING 'EBAN-BEDNR'
it_header-bednr.
PERFORM bdc_field USING 'EBAN-AFNAM'
it_header-afnam.
Item Details
v_l = 0.
To add no. of rows
v_2 = 0 .
As the screen is showing 13 rows defaulted to 130
v_rowno = 130 .
LOOP AT it_item WHERE sno = it_header-sno.
v_l = v_l + 1.
IF v_l = 14 .
IF v_2 = 12 .
v_2 = 12 .
v_l = 2 .
From second time onwards it is displaying 12 rows only
v_rowno = v_rowno + 120 .
PERFORM bdc_dynpro USING 'SAPMM06B' '0106'.
PERFORM bdc_field USING 'BDC_CURSOR'
'RM06B-BNFPO'.
PERFORM bdc_field USING 'RM06B-BNFPO'
v_rowno.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
ELSE.
V_2 initialized to 12 for second screen purpose
v_2 = 12 .
v_l = 2 .
PERFORM bdc_dynpro USING 'SAPMM06B' '0106'.
PERFORM bdc_field USING 'BDC_CURSOR'
'RM06B-BNFPO'.
PERFORM bdc_field USING 'RM06B-BNFPO'
v_rowno .
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
ENDIF.
ENDIF.
PERFORM bdc_dynpro USING 'SAPMM06B' '0106'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
CLEAR v_field.
CONCATENATE 'EBAN-MATNR(' v_l ')' INTO v_field.
PERFORM bdc_field USING v_field it_item-matnr.
CLEAR v_field.
CONCATENATE 'EBAN-MENGE(' v_l ')' INTO v_field.
PERFORM bdc_field USING v_field it_item-menge.
PERFORM bdc_dynpro USING 'SAPMM06B' '0102'.
PERFORM bdc_field USING 'BDC_CURSOR'
'EBAN-PREIS'.
PERFORM bdc_field USING 'BDC_OKCODE'
'/00'.
PERFORM bdc_field USING 'EBAN-PREIS'
it_item-preis.
PERFORM bdc_dynpro USING 'SAPMM06B' '0505'.
PERFORM bdc_field USING 'BDC_CURSOR'
'EBKN-SAKTO'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=ENTE'.
PERFORM bdc_field USING 'EBKN-SAKTO'
it_item-sakto.
Cost Center
PERFORM bdc_dynpro USING 'SAPLKACB' '0002'.
PERFORM bdc_field USING 'BDC_CURSOR'
'COBL-KOSTL'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=ENTE'.
PERFORM bdc_field USING 'COBL-KOSTL'
it_item-kostl.
PERFORM bdc_field USING 'BDC_OKCODE'
'=ENTE'.
ENDLOOP.
PERFORM bdc_dynpro USING 'SAPMM06B' '0106'.
PERFORM bdc_field USING 'BDC_CURSOR'
'RM06B-BNFPO'.
PERFORM bdc_field USING 'BDC_OKCODE'
'=BU'.
Call The Transaction
PERFORM bdc_transaction USING 'ME51'.
ENDLOOP.
Close the BDC Session
PERFORM close_group.
reward for useful answers.
Regards,
Anji -
Data in the cube is showing multiple entries when compared with ODS
Hello BW Gurus,
We have a waste report in production planning on Cube and ODS separately. The same info package loads both targets (which means same infosource) but when we run a report on Cube, the records are showing multiple entries (i.e. Key Figures are not matching when compared to ODS) where as the ODS records are showing correctly as it was in R/3. There are totally 6 key figures out of which 4 pulled from R/3 and 2 are populated in BW.
An Example:
Waste report in PP run for plant 1000 for 12/2005 and process order 123456. The operational scrap should be 2.46% and the component scrap should be 3.00% for material 10000000. The report is showing 7.87% for planned operational waste % and 9.6% for planned component waste %. These values are not correct. The ODS values for order 123456 matched the data in R/3 for component and operational scrap.
There is a Start routine to the ODS and also to the cube. I am not good at ABAP so requesting your Help.
Here is the ODS Code:
tables: /BI0/PPRODORDER.
loop at data_package.
select single COORD_TYPE
PRODVERS
into (/BI0/PPRODORDER-COORD_TYPE,
/BI0/PPRODORDER-PRODVERS)
from /BI0/PPRODORDER
where PRODORDER = data_package-PRODORDER
and OBJVERS = 'A'.
if sy-subrc = 0.
if /BI0/PPRODORDER-COORD_TYPE = 'XXXX'
or /BI0/PPRODORDER-COORD_TYPE = 'YYYY'.
data_package-PRODVERS = space.
else.
data_package-PRODVERS = /BI0/PPRODORDER-PRODVERS.
endif.
endif.
if data_package-calday = space
or data_package-calday = '00000000'.
if data_package-TGTCONSQTY NE 0.
data_package-calday = data_package-ACTRELDATE.
endif.
endif.
modify data_package.
endloop.
Here is Cube Code:
tables: /BI0/PPRODORDER,
/BIC/ODS.
TYPES:
BEGIN OF ys_mat_unit,
material TYPE /bi0/oimaterial,
mat_unit TYPE /bi0/oimat_unit,
numerator TYPE /bi0/oinumerator,
denomintr TYPE /bi0/oidenomintr,
END OF ys_mat_unit.
DATA:
l_s_mat_unit TYPE ys_mat_unit,
e_factor type p decimals 5.
loop at data_package.
select single COORD_TYPE
PRODVERS
into (/BI0/PPRODORDER-COORD_TYPE,
/BI0/PPRODORDER-PRODVERS)
from /BI0/PPRODORDER
where PRODORDER = data_package-PRODORDER
and OBJVERS = 'A'.
if sy-subrc = 0.
if /BI0/PPRODORDER-COORD_TYPE = 'XXX'
or /BI0/PPRODORDER-COORD_TYPE = 'YYY'.
data_package-PRODVERS = space.
else.
data_package-PRODVERS = /BI0/PPRODORDER-PRODVERS.
endif.
endif.
if data_package-calday = space
or data_package-calday = '00000000'.
if data_package-TGTCONSQTY NE 0.
data_package-calday = data_package-ACTRELDATE.
endif.
endif.
data_package-agsu = 'GSU'.
data_package-agsu_qty = 0.
select single gr_qty
base_uom
into (/BIC/ODS-gr_qty,
/BIC/ODS-base_uom)
from /BIC/ODS
where prodorder = data_package-prodorder
and material = data_package-material.
if sy-subrc = 0.
if /BIC/ODS-base_uom = 'GSU'.
data_package-agsu_qty = /BIC/ODS-gr_qty.
else.
SELECT SINGLE * FROM /bi0/pmat_unit
INTO CORRESPONDING FIELDS OF l_s_mat_unit
WHERE material = data_package-material
AND mat_unit = 'GSU'
AND objvers = 'A'.
IF sy-subrc = 0.
IF l_s_mat_unit-denomintr <> 0.
e_factor = l_s_mat_unit-denomintr /
l_s_mat_unit-numerator.
multiply /BIC/ODS-gr_qty by e_factor.
data_package-agsu_qty = /BIC/ODS-gr_qty.
ENDIF.
else.
CALL FUNCTION 'UNIT_CONVERSION_SIMPLE'
EXPORTING
INPUT = /BIC/ODS-gr_qty
NO_TYPE_CHECK = 'X'
ROUND_SIGN = ' '
UNIT_IN = /BIC/ODS-base_uom
UNIT_OUT = 'GSU'
IMPORTING
OUTPUT = DATA_PACKAGE-gsu_qty
EXCEPTIONS
CONVERSION_NOT_FOUND = 1
DIVISION_BY_ZERO = 2
INPUT_INVALID = 3
OUTPUT_INVALID = 4
OVERFLOW = 5
TYPE_INVALID = 6
UNITS_MISSING = 7
UNIT_IN_NOT_FOUND = 8
UNIT_OUT_NOT_FOUND = 9
OTHERS = 10.
endif.
endif.
endif.
modify data_package.
endloop.
some how the AGSU qyt is not populating in the cube and when I dbug the code, I could see a clean record in the internal table but not in the cube.
your suggestion and solutions would be highly appreciated.
thanks,
Swathi.Hi Swathi
In ODs we have option of overwriting and addition however in Cube we have only adition.Thats why you are getting multiple enteries.
If you are running daily full load on the cube then please delete the earlier requests.
So at one point of time there should be only one full load request in cube. Hope this will solve your problem.
Regards,
Monika -
I am getting a error IO when trying to upload multiple images within wordpress using the flash uploader. I do not get the error when uploading using explorer. The error only appears if I try uploading using firefox....any ideas?
Logged the call with SAP who directed me to 'Define settings for attachments' in IMG and setting the 'Deactivate Java Applet' & 'Deactivate Attachment versioning' checkboxes - problem solved.
-
Multiple entries of the same topic in calendar
Hi, i am having trouble with my calendar, as in it displays multiple entries of 1 entry on the same day! eg. if i have one entry then it displays that same entry about 15-20 times on that same day in a list!!! can anyone help with this fault?
I'm having same problem but where there are duplicate calendar entries, one of the entries cannot be changed (doesn't have edit button)and the other entry can be changed. Needed to reschedule a doctor's appointment and wasn't able to delete b/c there isn't an edit button. So it stays there. Don't know which date is the new rescheduled date. I have iPhone 3g. Since iPhone4 my 3g is extremely slow too.
-
How do you upload multiple files?
Hi,
This is propably an easy one.
I am trying to upload multiple .gif files to a folder in KM.
I went to Content Management -> KM Content and created a new folder inside a sub-folder.
Now when I click on the contect menu I select New.. and then Upload...
However, this only allows me to select for upload one file at a time.
I neeed to upload about 50 files. It will take ages doing this one by one!
Is there a quicker way?Hi
Multiple upload of files is possible by using WEBDAV protocol.To use this follow the below steps.
Go to folder to which u want to upload the files and the click on the context menu and select details.A new window will open up.In that select settings->properties->accesslinks.copy the WEBDAV link shown there.
Now
click My Network Places on your desktop, and choose Tools from the top menu bar/Map Network Drive from the context menu. If you donu2019t find My Network Places on your desktop you can find it under Windows Start menu option on your computer.
select Sign up for online storage or connect to a network server. Click next
Highlight Choose another network locations. Click next
Use Cntrl+V to paste the URL path name(webdav URL). Click next
Change the URL location to the name of the folder in KM. Hit next. Hit finish
A folder by the name you just created will appear under my network places on your explorer application.
Using this u can upload multiple files directly into folder u want.
Hope this solves ur problem.
Regards
Hussain. -
I can't understand why this has happened - i went back to my entries for last year to check on a birthday that hadn't shown up for this year and i had multiple entries for each event e.g an appointment would be listed 20 times - for that date.
Does anybody know what the problem is?Probably because of iCloud since I assume you started it up on both Macbook and a mobile device.
Maybe you are looking for
-
Annoying Problem - Flash Installation
Basically my problem is this. Whenever I go on certain websites, sometimes the flash content works and other times it doesn't. I tried to reinstall Flash Player 8 but it says it's already installed, but then when I go to view flash content on another
-
Hi, I use Itunes , and I found issue in interface(arrow for next song)
-
10.4.9 - Power PC support: disillusioned Mac owner
I was hoping that 10.4.9 would at last Mac support for the Sony GPS-CS1. This device has been out for 6 months now and 'just works' on Windows and Linux. It appears it 10.4.9 may fix the problem on Intel machines, but not on PPC ones. I did raise a b
-
Select query for KONV and VBAK table
hy Experts. Please Help me For this Query, i got error on it. I wnt to take KONV-KBETR (RATE FIELD) for particular SO number. and i used following query but it gives error i cant relate VBAK & KONV table. Please do needful SELECT KBETR KNUMV FROM KO
-
I have a vendor database that I want to use to populate a pre-created PDF form in Adobe Pro XI. I figured out how to rename the form data fields and how import the data from my data set but can't figure out how to have it create another copy of the f