Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 

please send one exicuted program example of inbound idoc process

Former Member
0 Kudos

Dear Friends,

I am facing one problem to process inbound idoc process.Please example send anybody ?

I have faced problem in standalone process to do inbound idoc process.

iam waiting for your valuble response.

Definitly best answer will get best reward.

Regards.

Sridhar Menda.

1 ACCEPTED SOLUTION

Former Member
0 Kudos

HI

try this

··DATA:·SUBRC·LIKE·SY-SUBRC,

········OBJECT_NUMBER·LIKE·XHEAD-DOCMNT_NO.

*·Initialize·variables

··SUBRC·=·0.

*·Read·the·IDoc's·control·record

··READ·TABLE·IDOC_CONTRL·INDEX·1.

*·Process·the·IDoc·and·post·the·data·to·the·database

··PERFORM·IDOC_PROCESS_XAMPLE·TABLES···IDOC_DATA

·······································IDOC_STATUS

······························USING····IDOC_CONTRL

······························CHANGING·OBJECT_NUMBER

·······································SUBRC.

*·Fill·the·ALE·export·parameters

··CLEAR·IN_UPDATE_TASK.

··CLEAR·CALL_TRANSACTION_DONE.·········"Call·Transaction·is·not·used.

··IF·SUBRC·<>·0.·······················"Error·occurred

····WORKFLOW_RESULT·=·C_WF_RESULT_ERROR.

····RETURN_VARIABLES-WF_PARAM·=·C_WF_PAR_ERROR_IDOCS.

····RETURN_VARIABLES-DOC_NUMBER·=·IDOC_CONTRL-DOCNUM.

····APPEND·RETURN_VARIABLES.

··ELSE.································"IDoc·processed·successfully

····WORKFLOW_RESULT·=·C_WF_RESULT_OK.

····RETURN_VARIABLES-WF_PARAM·=·C_WF_PAR_PROCESSED_IDOCS.

····RETURN_VARIABLES-DOC_NUMBER·=·IDOC_CONTRL-DOCNUM.

····APPEND·RETURN_VARIABLES.

····RETURN_VARIABLES-WF_PARAM·=·C_WF_PAR_APPL_OBJECTS.

····RETURN_VARIABLES-DOC_NUMBER·=·OBJECT_NUMBER.

····APPEND·RETURN_VARIABLES.

··ELSE.

ENDFUNCTION.

3 REPLIES 3

Former Member
0 Kudos

HI

try this

··DATA:·SUBRC·LIKE·SY-SUBRC,

········OBJECT_NUMBER·LIKE·XHEAD-DOCMNT_NO.

*·Initialize·variables

··SUBRC·=·0.

*·Read·the·IDoc's·control·record

··READ·TABLE·IDOC_CONTRL·INDEX·1.

*·Process·the·IDoc·and·post·the·data·to·the·database

··PERFORM·IDOC_PROCESS_XAMPLE·TABLES···IDOC_DATA

·······································IDOC_STATUS

······························USING····IDOC_CONTRL

······························CHANGING·OBJECT_NUMBER

·······································SUBRC.

*·Fill·the·ALE·export·parameters

··CLEAR·IN_UPDATE_TASK.

··CLEAR·CALL_TRANSACTION_DONE.·········"Call·Transaction·is·not·used.

··IF·SUBRC·<>·0.·······················"Error·occurred

····WORKFLOW_RESULT·=·C_WF_RESULT_ERROR.

····RETURN_VARIABLES-WF_PARAM·=·C_WF_PAR_ERROR_IDOCS.

····RETURN_VARIABLES-DOC_NUMBER·=·IDOC_CONTRL-DOCNUM.

····APPEND·RETURN_VARIABLES.

··ELSE.································"IDoc·processed·successfully

····WORKFLOW_RESULT·=·C_WF_RESULT_OK.

····RETURN_VARIABLES-WF_PARAM·=·C_WF_PAR_PROCESSED_IDOCS.

····RETURN_VARIABLES-DOC_NUMBER·=·IDOC_CONTRL-DOCNUM.

····APPEND·RETURN_VARIABLES.

····RETURN_VARIABLES-WF_PARAM·=·C_WF_PAR_APPL_OBJECTS.

····RETURN_VARIABLES-DOC_NUMBER·=·OBJECT_NUMBER.

····APPEND·RETURN_VARIABLES.

··ELSE.

ENDFUNCTION.

Former Member
0 Kudos

theres a wonderful program that could help u out in "http://www.henrikfrank.dk/abapexamples/IDOC/gl_postings2.htm" its for a standalone sys also.

just try it out.

Former Member
0 Kudos

Hi Sridhar,

Here is a example of program for inbound idoc process.

Example Program to Process an IDoc

The Example Program to Process an IDoc shows how the fictitious message type XAMPLE, communicated with IDocs of type XAMPLE01, is processed using the inbound function module Idoc_Input_Xample. The IDoc type has a header segment, E1xhead, and any number of item segments E1xitem. The data from the IDoc is written to two database tables, XHEAD and XITEM respectively. XHEAD and XITEM contain the same field names as E1xhead and E1xitem respectively. The fields names and data types are shown in the following two tables:

Field Name in XHEAD

Docmnt_no

Date

Currency

Country

Description

Document number

Date

Currency

Country

Type in e1xhead

CHAR

CHAR

CHAR

CHAR

Type in XHEAD

NUMC

DATS

CUKY

CHAR

Field Name in XITEM

Item_no

Materialid

Descript

Unit

Quantity

Value

Ship_Inst

Description

Item number

Material number

Material description

Unit of measure

Quantity

Value

Shipping instructions

Type in e1xitem

CHAR

CHAR

CHAR

CHAR

CHAR

CHAR

CHAR

Type in xitem

NUMC

CHAR

CHAR

UNIT

QUAN

CURR

UNIT

The data on the database is assigned a new document number (field DOCMNT_NO) using number assignment. The field DOCMNT_NO is not stored in the newly created table XHEAD.

FUNCTION·IDOC_INPUT_XAMPLE.

*"----

-


*"

*"Local·interface:

*"·······IMPORTING

*"·············VALUE(INPUT_METHOD)·LIKE··BDWFAP_PAR-INPUTMETHD

*"·············VALUE(MASS_PROCESSING)·LIKE··BDWFAP_PAR-MASS_PROC

*"·······EXPORTING

*"·············VALUE(WORKFLOW_RESULT)·LIKE··BDWF_PARAM-RESULT

*"·············VALUE(APPLICATION_VARIABLE)·LIKE··BDWF_PARAM-APPL_VAR

*"·············VALUE(IN_UPDATE_TASK)·LIKE··BDWFAP_PAR-UPDATETASK

*"·············VALUE(CALL_TRANSACTION_DONE)·LIKE··BDWFAP_PAR-CALLTRANS

*"·······TABLES

*"··············IDOC_CONTRL·STRUCTURE··EDIDC

*"··············IDOC_DATA·STRUCTURE··EDIDD

*"··············IDOC_STATUS·STRUCTURE··BDIDOCSTAT

*"··············RETURN_VARIABLES·STRUCTURE··BDWFRETVAR

*"··············SERIALIZATION_INFO·STRUCTURE··BDI_SER

*"·······EXCEPTIONS

*"··············WRONG_FUNCTION_CALLED

*"----

-


*·----

-


*·----


·05·July·1996·----

-


*·----

-


*·Example·function·module·for·processing·inbound·IDocs·for·ALE·or·EDI.

*·This·example·applies·for·processing

*

*···with····-··one·IDoc·at·a·time

*

*···without·-··serialization

*···········-··customer-exits

*···········-··calling·an·ALE-enabled·transaction

*···········-··mass·processing·(more·than·one·IDoc·at·a·time)

*·----


·Naming·conventions·----

-


*·Internal·tables·start·with·'t_'

*·Internal·field·strings·start·with·'f_'

*·----

-


*·>>·The·following·line·must·appear·in·the·global·part·of·your

*·>>·function·group:

*····include·mbdconwf.············"Report·containing·the·ALE·constants.

*·The·ALE·constants·start·with·'c_'.

··DATA:·SUBRC·LIKE·SY-SUBRC,

········OBJECT_NUMBER·LIKE·XHEAD-DOCMNT_NO.

*·Initialize·variables

··SUBRC·=·0.

*·Read·the·IDoc's·control·record

··READ·TABLE·IDOC_CONTRL·INDEX·1.

*·Process·the·IDoc·and·post·the·data·to·the·database

··PERFORM·IDOC_PROCESS_XAMPLE·TABLES···IDOC_DATA

·······································IDOC_STATUS

······························USING····IDOC_CONTRL

······························CHANGING·OBJECT_NUMBER

·······································SUBRC.

*·Fill·the·ALE·export·parameters

··CLEAR·IN_UPDATE_TASK.

··CLEAR·CALL_TRANSACTION_DONE.·········"Call·Transaction·is·not·used.

··IF·SUBRC·<>·0.·······················"Error·occurred

····WORKFLOW_RESULT·=·C_WF_RESULT_ERROR.

····RETURN_VARIABLES-WF_PARAM·=·C_WF_PAR_ERROR_IDOCS.

····RETURN_VARIABLES-DOC_NUMBER·=·IDOC_CONTRL-DOCNUM.

····APPEND·RETURN_VARIABLES.

··ELSE.································"IDoc·processed·successfully

····WORKFLOW_RESULT·=·C_WF_RESULT_OK.

····RETURN_VARIABLES-WF_PARAM·=·C_WF_PAR_PROCESSED_IDOCS.

····RETURN_VARIABLES-DOC_NUMBER·=·IDOC_CONTRL-DOCNUM.

····APPEND·RETURN_VARIABLES.

····RETURN_VARIABLES-WF_PARAM·=·C_WF_PAR_APPL_OBJECTS.

····RETURN_VARIABLES-DOC_NUMBER·=·OBJECT_NUMBER.

····APPEND·RETURN_VARIABLES.

··ELSE.

ENDFUNCTION.

*----


*

·······FORM·IDOC_PROCESS_XAMPLE······································

*----


*

··This·routine·creates·an·application·document·based·on·the·IDoc's···

··contents.·Object_Number·contains·the·new·document's·number.··········If·an·error·occurs,·subrc·is·non-zero,·t_idoc_status·is·filled.·······Note:·if·more·than·one·error·is·detected,·t_idoc_status·contains···

········more·than·one·status·record.·································

*----


*

··-->··F_IDOC_CONTRL····IDoc·control·record··························

··-->··T_IDOC_DATA······IDoc·data·records····························

··<--··T_IDOC_STATUS····IDoc·status·records··························

··<--··OBJECT_NUMBER····Created·document's·number····················

··<--··SUBRC············Return·code··································

*----


*

FORM·IDOC_PROCESS_XAMPLE

·······TABLES···T_IDOC_DATA····STRUCTURE·EDIDD

················T_IDOC_STATUS··STRUCTURE·BDIDOCSTAT

·······USING····F_IDOC_CONTRL··STRUCTURE·EDIDC

·······CHANGING·OBJECT_NUMBER··LIKE·XHEAD-DOCMNT_NO

················SUBRC··········LIKE·SY-SUBRC.

*·Internal·field·string·for·the·document·header.

··DATA:·F_XHEAD·LIKE·XHEAD.

*·Internal·table·for·the·document·items.

··DATA:·T_XITEM·LIKE·XITEM·OCCURS·0·WITH·HEADER·LINE.

*·Number·given·to·the·created·document·DOCUMENT_NUMBER·LIKE·F_XHEAD-DOCMNT_NO.

*·Move·the·data·in·the·IDoc·to·the·internal·structures/tables

*·f_xhead·and·t_xitem.

··PERFORM·IDOC_INTERPRET·TABLES···T_IDOC_DATA

··································T_XITEM

··································T_IDOC_STATUS

·························USING····F_IDOC_CONTRL

·························CHANGING·F_XHEAD

··································SUBRC.

*·Create·the·application·object·if·no·error·occurred·so·far.

··IF·SUBRC·=·0.

*···This·fictitious·function·module·creates·a·new·object·based·on·the

*···data·that·was·read·from·the·IDoc.·The·new·object's·ID·is·returned

*···in·the·parameter·'document_number'.

*···The·function·module·checks·that·the·data·is·correct,·and·raises

*···an·exception·if·an·error·is·detected.

····CALL·FUNCTION·'XAMPLE_OBJECT_CREATE'

·········EXPORTING

··············XHEAD···········=·F_XHEAD

·········IMPORTING

··············DOCUMENT_NUMBER·=·DOCUMENT_NUMBER

·········TABLES

··············XITEM···········=·T_XITEM

·········EXCEPTIONS

··············OTHERS··········=·1.

····IF·SY-SUBRC·<>·0.

······SUBRC·=·1.

*·····Put·the·error·message·into·'t_idoc_status'

······PERFORM·STATUS_FILL_SY_ERROR

················TABLES···T_IDOC_STATUS

················USING····T_IDOC_DATA

·························SY

·························''············"Field·name

·························'idoc_process_xample'.·········"Form·routine

····ELSE.

*·····Fill·the·remaining·export·parameters

······OBJECT_NUMBER·=·DOCUMENT_NUMBER.··········"New·document's·number

······t_idoc_status-docnum·=·f_idoc_contrl-docnum.

······t_idoc_status-status·=·c_idoc_status_ok.

······t_idoc_status-msgty··=·'S'.

······t_idoc_status-msgid··=·your_msgid.·"Global·variable.

······t_idoc_status-msgno··=·msgno_success."Global·variable.

······t_idoc_status-msgv1··=·object_number.

······APPEND·T_IDOC_STATUS.

····ENDIF.·····························"if·sy-subrc·<>·0.

··ENDIF.·····························"if·subrc·=·0.

ENDFORM.

*----


*

·······FORM·IDOC_INTERPRET···········································

*----


*

··This·routine·checks·that·the·correct·message·type·is·being·used,···

··and·then·converts·and·moves·the·data·from·the·IDoc·segments·to·the·

··internal·structure·f_xhead·and·internal·table·t_xitem.·············

··If·an·error·occurs,·t_idoc_status·is·filled·an·subrc·<>·0.·········

*----


*

··-->··T_IDOC_STATUS·················································

··-->··T_XITEM·······················································

··-->··F_IDOC_DATA···················································

··-->··F_XHEAD·······················································

··-->··SUBRC·························································

*----


*

FORM·IDOC_INTERPRET·TABLES···T_IDOC_DATA····STRUCTURE·EDIDD

·····························T_XITEM········STRUCTURE·XITEM

·····························T_IDOC_STATUS··STRUCTURE·BDIDOCSTAT

····················USING····F_IDOC_CONTRL··STRUCTURE·EDIDC

····················CHANGING·F_XHEAD········STRUCTURE·XHEAD

·····························SUBRC··········LIKE·SY-SUBRC.

*·Check·that·the·IDoc·contains·the·correct·message·type.

*··Note:·if·your·message·type·is·reducible,·check·field·'idoctp'

*·······(IDoc·type)·instead·of·'mestyp'.

··IF·F_IDOC_CONTRL-MESTYP·<>·'XAMPLE'.

····MESSAGE·ID······YOUR_MSGID···············"Global·variable

············TYPE····'E'

············NUMBER··MSGNO_WRONG_FUNCTION·····"Global·variable

············WITH····F_IDOC_CONTRL-MESTYP·····"message·type

····················'IDOC_INPUT_XAMPLE'······"Your·function·module.

····················F_IDOC_CONTRL-SNDPRT·····"Sender·partner·type

····················F_IDOC_CONTRL-SNDPRN·····"Sender·number.

············RAISING·WRONG_FUNCTION_CALLED.

··ENDIF.

*·Loop·through·the·IDoc's·segments·and·convert·the·data·from·the·IDoc

*·format·to·the·internal·format.

··LOOP·AT·T_IDOC_DATA·WHERE·DOCNUM·=·F_IDOC_CONTRL-DOCNUM.

····CASE·T_IDOC_DATA-SEGNAM.

······WHEN·'E1XHEAD'.

········PERFORM·E1XHEAD_PROCESS·TABLES···T_IDOC_STATUS

································USING····T_IDOC_DATA

································CHANGING·F_XHEAD

·········································SUBRC.

······WHEN·'E1XITEM'.

········PERFORM·E1XITEM_PROCESS·TABLES···T_XITEM

·········································T_IDOC_STATUS

································USING····F_XHEAD-CURRENCY

·········································T_IDOC_DATA

································CHANGING·SUBRC.

····ENDCASE.

··ENDLOOP.

ENDFORM.

*----


*

·······FORM·E1XHEAD_PROCESS··········································

*----


*

··This·routine·fills·'f_xhead'·out·of·segment·e1xhead.·················If·an·error·occurs,·subrc·is·non-zero,·t_idoc_status·is·filled.····*

*----


*

··-->··F_IDOC_DATA·······IDoc·segment·containing·e1xhead·fields······

··<--··F_XHEAD···········Internal·structure·containing·doc.·header···

··<--··T_IDOC_STATUS·····Status·fields·for·error·handling············

··<--··SUBRC·············Return·code:·non-zero·if·an·error·occurred··

*----


*

FORM·E1XHEAD_PROCESS·TABLES···T_IDOC_STATUS··STRUCTURE·BDIDOCSTAT

·····················USING····F_IDOC_DATA····STRUCTURE·EDIDD

·····················CHANGING·F_XHEAD········STRUCTURE·XHEAD

······························SUBRC··········LIKE·SY-SUBRC.

··DATA:·F_E1XHEAD·LIKE·E1XHEAD.

··F_E1XHEAD·=·F_IDOC_DATA-SDATA.

*·Process·fields·that·need·conversion·from·ISO-codes·to·SAP-codes

··PERFORM·E1XHEAD_CODES_ISO_TO_SAP

·········TABLES···T_IDOC_STATUS

·········USING····F_E1XHEAD

··················F_IDOC_DATA

·········CHANGING·F_XHEAD

··················SUBRC.

*·Process·fields·containing·dates·or·times

··PERFORM·E1XHEAD_DATE_TIME·USING····F_E1XHEAD

····························CHANGING·F_XHEAD.

ENDFORM.·······························"e1xhead_process

*----


*

·······FORM·E1XITEM_PROCESS··········································

*----


*

··This·routine·converts·the·data·in·the·segment·'e1xitem'·for········

··to·the·format·of·table·'t_xitem'·and·appends·it·to·the·table.········If·an·error·occurs,·subrc·is·non-zero,·t_idoc_status·is·filled.····*

*----


*

··-->··F_IDOC_DATA······IDoc·segment·································

··<--··T_XITEM··········Document·items·to·be·updated·to·database·····

··<--··T_IDOC_STATUS····Status·fields·filled·if·an·error·occurred····

··<--··SUBRC············Return·code:·0·if·all·OK·····················

*----


*

FORM·E1XITEM_PROCESS·TABLES···T_XITEM·······STRUCTURE·XITEM

······························T_IDOC_STATUS·STRUCTURE·BDIDOCSTAT

·····················USING····CURRENCY······LIKE·XHEAD-CURRENCY

······························F_IDOC_DATA···STRUCTURE·EDIDD

·····················CHANGING·SUBRC·········LIKE·SY-SUBRC.

··DATA:·F_E1XITEM·LIKE·E1XITEM.

··F_E1XITEM·=·F_IDOC_DATA-SDATA.

*·Fields·of·type·CHAR,·NUMC,·QUAN·need·no·conversion.

··T_XITEM-ITEM_NO····=·F_E1XITEM-ITEM_NO.

··T_XITEM-MATERIALID·=·F_E1XITEM-MATERIALID.

··T_XITEM-DESCRIPT···=·F_E1XITEM-DESCRIPT.

··T_XITEM-QUANTITY···=·F_E1XITEM-QUANTITY.

*·Process·fields·that·need·conversion·from·ISO-codes·to·SAP-codes

··PERFORM·E1XHEAD_CODES_ISO_TO_SAP

·········TABLES···T_IDOC_STATUS

·········USING····F_E1XHEAD

··················F_IDOC_DATA

·········CHANGING·F_XHEAD

··················SUBRC.

*·Process·fields·that·contain·monetary·values

··PERFORM·E1XITEM_VALUE_IDOC_TO_SAP·TABLES···T_IDOC_STATUS

····································USING····F_E1XITEM

·············································CURRENCY

·············································F_IDOC_DATA

····································CHANGING·T_XITEM

·············································SUBRC.

··APPEND·T_XITEM.

ENDFORM.

*----


*

·······FORM·E1XHEAD_CODES_ISO_TO_SAP·································

*----


*

··Converts·ISO-Codes·in·f_e1xhead·to·SAP-codes·in·f_xhead.·············f_idoc_data,·t_idoc_status·and·subrc·are·used·for·error·handling.··*

*----


*

FORM·E1XHEAD_CODES_ISO_TO_SAP

·······TABLES···T_IDOC_STATUS·STRUCTURE·BDIDOCSTAT

·······USING····F_E1XHEAD·····STRUCTURE·E1XHEAD

················F_IDOC_DATA···STRUCTURE·EDIDD

·······CHANGING·F_XHEAD·······STRUCTURE·XHEAD

················SUBRC.

*·f_xhead-currency···Type·CUKY·=>·convert·ISO-Code·to·SAP-Code.

··PERFORM·CURRENCY_CODE_ISO_TO_SAP

·········TABLES···T_IDOC_STATUS

·········USING····F_E1XHEAD-CURRENCY

··················F_IDOC_DATA

··················'CURRENCY'

·········CHANGING·F_XHEAD-CURRENCY

··················SUBRC.

··CHECK·SUBRC·=·0.

*·f_xhead-country···Contains·a·country·=>·convert·from·ISO·to·SAP·code.

··PERFORM·COUNTRY_CODE_ISO_TO_SAP

·········TABLES···T_IDOC_STATUS

·········USING····F_E1XHEAD-COUNTRY

··················F_IDOC_DATA

··················'COUNTRY'

·········CHANGING·F_XHEAD-COUNTRY

··················SUBRC.

ENDFORM.

*----


*

·······FORM·E1XITEM_CODES_ISO_TO_SAP·································

*----


*

··Converts·ISO-Codes·in·f_e1xitem·to·SAP-codes·in·f_xitem············

··f_idoc_data,·t_idoc_status·and·subrc·are·used·for·error·handling.··

*----


*

FORM·E1XITEM_CODES_ISO_TO_SAP

·······TABLES···T_IDOC_STATUS·STRUCTURE·BDIDOCSTAT

·······USING····F_E1XITEM·····STRUCTURE·E1XITEM

················F_IDOC_DATA···STRUCTURE·EDIDD

·······CHANGING·F_XITEM·······STRUCTURE·XITEM

················SUBRC·········LIKE·SY-SUBRC.

*·f_xitem-unit·······Type·UNIT·=>·convert·ISO-Code·to·SAP-Code.

··PERFORM·UNIT_OF_MEASURE_ISO_TO_SAP

·········TABLES···T_IDOC_STATUS

·········USING····F_E1XITEM-UNIT

··················F_IDOC_DATA

··················'unit'

·········CHANGING·F_XITEM-UNIT

··················SUBRC.

*·f_xitem-ship_inst··Contains·shipping·instructions·=>·ISO·to·SAP·code.

··PERFORM·SHIPPING_INSTRUCT_ISO_TO_SAP

·········TABLES···T_IDOC_STATUS

·········USING····F_E1XITEM-SHIP_INST

··················F_IDOC_DATA

··················'ship_inst'

·········CHANGING·F_XITEM-SHIP_INST

··················SUBRC.

ENDFORM.

*----


*

·······FORM·E1XITEM_VALUE_IDOC_TO_SAP································

*----


*

··Converts·fields·containing·monetary·values·in·f_e1xitem·to·········

··the·internal·representation·in·f_xitem.······························f_idoc_data,·t_idoc_status·and·subrc·are·used·for·error·handling.··*

*----


*

FORM·E1XITEM_VALUE_IDOC_TO_SAP

·······TABLES···T_IDOC_STATUS·STRUCTURE·BDIDOCSTAT

·······USING····F_E1XITEM·····STRUCTURE·E1XITEM

················CURRENCY······LIKE·XHEAD-CURRENCY

················F_IDOC_DATA···STRUCTURE·EDIDD

·······CHANGING·F_XITEM·······STRUCTURE·XITEM

················SUBRC·········LIKE·SY-SUBRC.

*·f_xitem-value····Type·CURR·=>·convert·IDoc·amount·to·internal·amount.

*·N.B.·the·currency·code·used·here·must·be·the·SAP-internal·one,·not

*······the·one·contained·in·the·IDoc!

··CALL·FUNCTION·'CURRENCY_AMOUNT_IDOC_TO_SAP'

·······EXPORTING

············CURRENCY····=·CURRENCY

············IDOC_AMOUNT·=·F_E1XITEM-VALUE

·······IMPORTING

············SAP_AMOUNT··=·F_XITEM-VALUE

·······EXCEPTIONS

············OTHERS······=·1.

··IF·SY-SUBRC·<>·0.

····SUBRC·=·1.

*···Put·the·error·message·into·'t_idoc_status'

····PERFORM·STATUS_FILL_SY_ERROR

··············TABLES···T_IDOC_STATUS

··············USING····F_IDOC_DATA

·······················SY

·······················'value'·········"Field·name

·······················'e1xitem_value_idoc_to_sap'.······"Form·routine

··ENDIF.·······························"if·sy-subrc·<>·0.

ENDFORM.

*----


*

·······FORM·E1XHEAD_DATE_TIME········································

*----


*

··Moves·date·and·time·fields·in·f_e1xhead·to·the·fields·in·f_xhead.··

*----


*

FORM·E1XHEAD_DATE_TIME·USING····F_E1XHEAD·STRUCTURE·E1XHEAD

·······················CHANGING·F_XHEAD·STRUCTURE·XHEAD.

*·f_xhead-date····Type·DATS·=>·initial·value·is·not·'blank'.

··IF·E1XHEAD-DATE·IS·INITIAL.

····CLEAR·F_XHEAD-DATE.

····F_XHEAD-DATE·=·F_E1XHEAD-DATE.

··ENDIF.

ENDFORM.

*----


*

·······FORM·CURRENCY_CODE_ISO_TO_SAP·································

*----


*

··Converts·ISO·currency·code·'iso_currency_code'·to·SAP·code·in······

··'sap_currency_code'················································

··f_idoc_data,·field_name,·t_idoc_status·and·subrc·are·used·for······

··for·error·handling.················································

*----


*

FORM·CURRENCY_CODE_ISO_TO_SAP

·······TABLES···T_IDOC_STATUS·····STRUCTURE·BDIDOCSTAT

·······USING····ISO_CURRENCY_CODE·LIKE·TCURC-ISOCD

················F_IDOC_DATA·······STRUCTURE·EDIDD

················FIELD_NAME········LIKE·BDIDOCSTAT-SEGFLD

·······CHANGING·SAP_CURRENCY_CODE·LIKE·TCURC-WAERS

················SUBRC·············LIKE·SY-SUBRC.

··IF·ISO_CURRENCY_CODE·IS·INITIAL.

····CLEAR·SAP_CURRENCY_CODE.

··ELSE.

····CALL·FUNCTION·'CURRENCY_CODE_ISO_TO_SAP'

·········EXPORTING

··············ISO_CODE·=·ISO_CURRENCY_CODE

·········IMPORTING

··············SAP_CODE·=·SAP_CURRENCY_CODE

·········EXCEPTIONS

··············OTHERS···=·1.

····IF·SY-SUBRC·<>·0.

······SUBRC·=·1.

*·····Put·the·error·message·into·'t_idoc_status'

······PERFORM·STATUS_FILL_SY_ERROR

················TABLES···T_IDOC_STATUS

················USING····F_IDOC_DATA

·························SY

·························FIELD_NAME

·························'currency_code_iso_to_sap'.·····"Form·routine

··ENDIF.·····························"if·sy-subrc·<>·0.

··ENDIF.·······························"if·iso_currency_code·is·initial.

ENDFORM.

*----


*

·······FORM·CURRENCY_CODE_ISO_TO_SAP·································

*----


*

··Converts·ISO·currency·code·'iso_currency_code'·to·SAP·code·in······

··'sap_currency_code'················································

··f_idoc_data,·field_name,·t_idoc_status·and·subrc·are·used·for······

··for·error·handling.················································

*----


*

FORM·COUNTRY_CODE_ISO_TO_SAP

·······TABLES···T_IDOC_STATUS····STRUCTURE·BDIDOCSTAT

·······USING····ISO_COUNTRY_CODE·LIKE·T005-INTCA

················F_IDOC_DATA······STRUCTURE·EDIDD

················FIELD_NAME·······LIKE·BDIDOCSTAT-SEGFLD

·······CHANGING·SAP_COUNTRY_CODE·LIKE·T005-LAND1

················SUBRC············LIKE·SY-SUBRC.

*·Only·convert·if·the·field·is·not·initial.

··IF·ISO_COUNTRY_CODE·IS·INITIAL.

····CLEAR·SAP_COUNTRY_CODE.

··ELSE.

····CALL·FUNCTION·'COUNTRY_CODE_ISO_TO_SAP'

·········EXPORTING

··············ISO_CODE·=·ISO_COUNTRY_CODE

·········IMPORTING

··············SAP_CODE·=·SAP_COUNTRY_CODE

·········EXCEPTIONS

··············OTHERS···=·1.

····IF·SY-SUBRC·<>·0.

······SUBRC·=·1.

*·····Put·the·error·message·into·'t_idoc_status'

······PERFORM·STATUS_FILL_SY_ERROR

················TABLES···T_IDOC_STATUS

················USING····F_IDOC_DATA

·························SY

·························FIELD_NAME

·························'country_code_iso_to_sap'.······"Form·routine

··ENDIF.·····························"if·sy-subrc·<>·0.

··ENDIF.·······························"if·iso_country_code·is·initial.

ENDFORM.

*----


*

·······FORM·UNIT_OF_MEASURE_ISO_TO_SAP·······························

*----


*

··Converts·ISO·unit·of·measure·code·'iso_unit_of_measure'·to·SAP·····

··code·in·'sap_unit_of_measure'.·····································

··f_idoc_data,·field_name,·t_idoc_status·and·subrc·are·used·for······

··for·error·handling.················································

*----


*

FORM·UNIT_OF_MEASURE_ISO_TO_SAP

·······TABLES···T_IDOC_STATUS·······STRUCTURE·BDIDOCSTAT

·······USING····ISO_UNIT_OF_MEASURE·LIKE·T006-ISOCODE

················F_IDOC_DATA·········STRUCTURE·EDIDD

················FIELD_NAME··········LIKE·BDIDOCSTAT-SEGFLD

·······CHANGING·SAP_UNIT_OF_MEASURE·LIKE·T006-MSEHI

················SUBRC···············LIKE·SY-SUBRC.

*·Only·convert·the·field·if·it·is·not·empty.

··IF·ISO_UNIT_OF_MEASURE·IS·INITIAL.

····CLEAR·SAP_UNIT_OF_MEASURE.

··ELSE.

····CALL·FUNCTION·'UNIT_OF_MEASURE_ISO_TO_SAP'

·········EXPORTING

··············ISO_CODE·=·ISO_UNIT_OF_MEASURE

·········IMPORTING

··············SAP_CODE·=·SAP_UNIT_OF_MEASURE

·········EXCEPTIONS

··············OTHERS···=·1.

····IF·SY-SUBRC·<>·0.

······SUBRC·=·1.

*·····Put·the·error·message·into·'t_idoc_status'

······PERFORM·STATUS_FILL_SY_ERROR

················TABLES···T_IDOC_STATUS

················USING····F_IDOC_DATA

·························SY

·························FIELD_NAME

·························'unit_of_measure_iso_to_sap'.··"Form·routine

··ENDIF.·····························"if·sy-subrc·<>·0.

··ENDIF.··················"if·iso_unit_of_measure_code·is·initial.

ENDFORM.

*----


*

·······FORM·SHIPPING_INSTRUCT_ISO_TO_SAP·····························

*----


*

··Converts·ISO·package·code·'iso_package_type'·to·SAP·code·for·······

··purchasing·shipping·instructions·in·'sap_shipping_instructions'.···

··f_idoc_data,·field_name,·t_idoc_status·and·subrc·are·used·for······

··for·error·handling.················································

*----


*

FORM·SHIPPING_INSTRUCT_ISO_TO_SAP

·······TABLES···T_IDOC_STATUS·············STRUCTURE·BDIDOCSTAT

·······USING····ISO_PACKAGE_TYPE··········LIKE·T027A-IVERS

················F_IDOC_DATA···············STRUCTURE·EDIDD

················FIELD_NAME················LIKE·BDIDOCSTAT-SEGFLD

·······CHANGING·SAP_SHIPPING_INSTRUCTIONS·LIKE·T027A-EVERS

················SUBRC·····················LIKE·SY-SUBRC.

*·Only·convert·the·field·if·it·is·not·empty.

··IF·ISO_PACKAGE_TYPE·IS·INITIAL.

····CLEAR·SAP_SHIPPING_INSTRUCTIONS.

··ELSE.

····CALL·FUNCTION·'ISO_TO_SAP_PACKAGE_TYPE_CODE'

·········EXPORTING

··············ISO_CODE·=·ISO_PACKAGE_TYPE

·········IMPORTING

··············SAP_CODE·=·SAP_SHIPPING_INSTRUCTIONS

·········EXCEPTIONS

··············OTHERS···=·1.

····IF·SY-SUBRC·<>·0.

······SUBRC·=·1.

*·····Put·the·error·message·into·'t_idoc_status'

······PERFORM·STATUS_FILL_SY_ERROR

················TABLES···T_IDOC_STATUS

················USING····F_IDOC_DATA

·························SY

·························FIELD_NAME

·························'shipping_instruct_iso_to_sap'.·"Form·rout.

··ENDIF.·····························"if·sy-subrc·<>·0.

··ENDIF.··················"if·iso_unit_of_measure_code·is·initial.

ENDFORM.

*----


*

·······FORM·STATUS_FILL_SY_ERROR·····································

*----


*

··Fills·the·structure·t_idoc_status·with·the·import·parameters·······

··plus·the·relevant·sy·fields.·······································

*----


*

··-->··IDOC_NUMBER···········IDoc·number·····························

··-->··SEGNUM················Segment·number··························

··-->··SEGFLD················Field·in·segment························

··-->··ROUTID················Name·of·routine·························

··<--··T_IDOC_STATUS·········Status·fields···························

*----


*

FORM·STATUS_FILL_SY_ERROR·TABLES···T_IDOC_STATUS·STRUCTURE·BDIDOCSTAT

··························USING····F_IDOC_DATA···STRUCTURE·EDIDD

···································VALUE(F_SY)···STRUCTURE·SY

···································SEGFLD········LIKE·BDIDOCSTAT-SEGFLD

···································ROUTID········LIKE·BDIDOCSTAT-ROUTID.

··t_idoc_status-docnum·=·f_idoc_data-docnum.

··t_idoc_status-status·=·c_idoc_status_error.

··t_idoc_status-msgty··=·f_sy-msgty.

··t_idoc_status-msgid··=·f_sy-msgid.

··T_IDOC_STATUS-MSGNO··=·F_SY-MSGNO.

··t_idoc_status-msgv1··=·f_sy-msgv1.

··t_idoc_status-msgv2··=·f_sy-msgv2.

··t_idoc_status-msgv3··=·f_sy-msgv3.

··t_idoc_status-msgv4··=·f_sy-msgv4.

··t_idoc_status-segnum·=·f_idoc_data-segnum.

··t_idoc_status-segfld·=·segfld.

··t_idoc_status-repid··=·f_sy-repid.

··t_idoc_status-routid·=·routid.

··APPEND·T_IDOC_STATUS.

ENDFORM.

Also Check out these docs.

http://help.sap.com/saphelp_nw04/helpdata/en/dc/6b7ee143d711d1893e0000e8323c4f/frameset.htm

http://help.sap.com/saphelp_nw04/helpdata/en/1a/178ad32d3011d3bc3500105a6588b2/frameset.htm

Dont forget to reward pts, if it helps ;>)

Regards,

Rakesh.