‎2012 Jan 28 6:54 AM
Dear Experts,
Some help required regarding following Code:
I have to upload data from excel file to SAP via BAPI BAPI_PLANNEDORDER_CREATE, mentioning all error which comes up in TXT file in c:/Temp. and also checking the material is created in SAP.
Issue with code:
1. Error are not coming Unique they are repeating, which they should not
2. Material 'COKE1' and TMT1'' are giving error in TXT file which is uploaded via excel file though COKE1 and TMT1 are created when checked in MD04.
3. Material 'T50108045500900' is not even created when checked via MD04 and also giving error in TXT file which it shoudl not.
Test Data:
Material Plant Quantity Start Date Finish Date SaleOrd
TMT_NEW ES01 155 20120127 20120127
TMT1 ES01 50 20120127 20120127 100
COKE1 ES01 111 20120127 20120127 100
T50108045500900 ES01 190 20120127 20120127 216
Code:
form BAPI_PLANNEDORDER_CREATE .
LOOP at it_record INTO wa_record.
BAPIPLAF_I1-MATERIAL = wa_record-MATNR.
BAPIPLAF_I1-PLAN_PLANT = wa_record-Plant.
BAPIPLAF_I1-PROD_PLANT = wa_record-Plant.
BAPIPLAF_I1-TOTAL_PLORD_QTY = wa_record-Quantity.
BAPIPLAF_I1-ORDER_START_DATE = wa_record-s_date.
BAPIPLAF_I1-ORDER_FIN_DATE = wa_record-f_date.
BAPIPLAF_I1-SALES_ORD = wa_record-Sale_ord.
IF BAPIPLAF_I1-SALES_ORD EQ ' '.
BAPIPLAF_I1-ACCTASSCAT = 'E'.
BAPIPLAF_I1-PLDORD_PROFILE = 'LA'.
ELSE.
BAPIPLAF_I1-ACCTASSCAT = ' '.
BAPIPLAF_I1-PLDORD_PROFILE = 'KD'.
ENDIF.
CALL FUNCTION 'BAPI_PLANNEDORDER_CREATE'
EXPORTING
headerdata = BAPIPLAF_I1
IMPORTING
RETURN = wa_error
PLANNEDORDER = I_BAPIPLNUM.
if wa_error-TYPE = 'E'.
DATA : lv_text(100) TYPE c.
lv_text = 'Material Account Assignment Data Is Incomplete for: ' .
CONCATENATE lv_text BAPIPLAF_I1-MATERIAL INTO wa_error-message.
append wa_error to lt_error.
Convert date to dd-mm-yyyy format
CALL FUNCTION 'HRGPBS_HESA_DATE_FORMAT'
EXPORTING
p_date = sy-datum
IMPORTING
DATESTRING = lv_date.
WRITE sy-uzeit TO lv_time ENVIRONMENT TIME FORMAT.
CONCATENATE lv_time0(2) ':' lv_time2(2) ':' lv_time+4(2) INTO lv_curr_time.
LOOP at lt_error INTO wa_error.
wa_log-Date = lv_date.
wa_log-Time = lv_curr_time.
wa_log-type = wa_error-type.
wa_log-message = wa_error-message.
APPEND wa_log to it_error.
ENDLOOP.
CLEAR lt_error.
*Displaying Error Message in Excel
DATA: lv_file TYPE string.
lv_file = 'C:\temp\Planned_Order_Creation_Error.TXT'.
CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
filename = lv_file
FILETYPE = 'ASC'
APPEND = 'X'
WRITE_FIELD_SEPARATOR = 'X'
tables
data_tab = it_error
EXCEPTIONS
FILE_WRITE_ERROR = 1
NO_BATCH = 2
GUI_REFUSE_FILETRANSFER = 3
INVALID_TYPE = 4
NO_AUTHORITY = 5
UNKNOWN_ERROR = 6
HEADER_NOT_ALLOWED = 7
SEPARATOR_NOT_ALLOWED = 8
FILESIZE_NOT_ALLOWED = 9
HEADER_TOO_LONG = 10
DP_ERROR_CREATE = 11
DP_ERROR_SEND = 12
DP_ERROR_WRITE = 13
UNKNOWN_DP_ERROR = 14
ACCESS_DENIED = 15
DP_OUT_OF_MEMORY = 16
DISK_FULL = 17
DP_TIMEOUT = 18
FILE_NOT_FOUND = 19
DATAPROVIDER_EXCEPTION = 20
CONTROL_FLUSH_ERROR = 21
OTHERS = 22.
IF sy-subrc EQ 0.
PERFORM COMMIT_WORK.
ELSE.
PERFORM ROLLBACK_WORK.
endif.
ELSE.
MOVE I_BAPIPLNUM TO PLAFW-PLANNEDORDER_NUM.
PERFORM COMMIT_WORK.
ENDIF.
ENDLOOP.
CLEAR it_error.
endform. " BAPI_PLANNEDORDER_CREATE
‎2012 Jan 28 7:03 AM
Dear experts,
I JUST need help in creating Material 'T50108045500900' which i am not able to. All other material in test data are present when checked through Tcode: MD04.
Kindly advise, what i am doin wrong in following Code.
Regards.
Puneet