‎2009 May 21 6:26 AM
Hi,
When I execute the BAPI - BAPI_CUSTOMER_CREATEFROMDATA1 the following error will come.
Error
Invalid form of address text for customer
Please give me a solution for this.
and documentation also.
Thanks,
Suresh Maniarasu.
‎2009 May 21 7:06 AM
Hi suresh,
First check the import and export parameters data type of the bapi, while passing to bapi declare the structures with same data type. have you used BAPI_TRANSACTION COMMIT after callilng the bapi.
If possible send ur code and you can find the documentation of bapi in the bapi transaction itself.
Rgds,
Venu
‎2009 May 21 7:40 AM
&----
*& Report ZBAPICUST_APPL
*&
&----
*&
*&
&----
REPORT ZBAPICUST_APLL.
TABLES: BAPIKNA101_1,BAPIKNA102,BAPIKNA103,BAPIRETURN1.
----
DATA: F_STOP.
DATA: V_EMPTY TYPE I,V_TOTAL TYPE I.
DATA: PI_PERSONALDATA LIKE BAPIKNA101_1,
PI_COPYREFERENCE LIKE BAPIKNA102,
CUSTOMERNO LIKE BAPIKNA103,
RETURN LIKE BAPIRETURN1.
DATA: IT_INTERN TYPE ALSMEX_TABLINE OCCURS 0 WITH HEADER LINE.
DATA: BEGIN OF IT_KNA101_1 OCCURS 100.
INCLUDE STRUCTURE BAPIKNA101_1.
DATA: END OF IT_KNA101_1.
----
DATA: BEGIN OF IT_DATA OCCURS 100,
AD_TITLETX(30),
AD_NAMEFIR(40),
AD_NAMELAS(40),
AD_NAMEMID(40),
GBDAT(8),
REGIO(3),
AD_CITY1(40),
SPRAS(1),
AD_CITY2(40),
AD_PSTCD1(10),
AD_POBX(10),
AD_STREET(60),
AD_HSNM1(10),
AD_BLDNG(20),
AD_ROOMNUM(10),
LAND1(3),
AD_TITLE(4),
WAERS(5),
VKORG(4),
VTWEG(2),
SPART(2),
REFKUNNR(10),
KUNNR(10),
END OF IT_DATA.
----
SELECTION-SCREEN BEGIN OF BLOCK SCR1 WITH FRAME TITLE TEXT-111.
PARAMETER : P_FILE TYPE RLGRAP-FILENAME OBLIGATORY DEFAULT 'C:\Documents and Settings\Administrator\Desktop\MARCDESCRIPTION.XLS'.
PARAMETER : P_MAX(4) OBLIGATORY DEFAULT '100'.
PARAMETERS: P_HEADER TYPE I DEFAULT 0.
PARAMETERS: P_BEGCOL TYPE I DEFAULT 1 NO-DISPLAY,
P_BEGROW TYPE I DEFAULT 1 NO-DISPLAY,
P_ENDCOL TYPE I DEFAULT 100 NO-DISPLAY,
P_ENDROW TYPE I DEFAULT 32000 NO-DISPLAY.
SELECTION-SCREEN END OF BLOCK SCR1.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE.
PERFORM VALIDATE_FILE USING P_FILE.
START-OF-SELECTION.
PERFORM CONVERT_XLS_ITAB.
IF NOT IT_DATA[] IS INITIAL.
PERFORM DELETE_HEADER_EMPTY_RECS.
ENDIF.
END-OF-SELECTION.
PERFORM UPLOAD_CUSTMAS.
&----
*& Form VALIDATE_FILE
&----
text
----
-->F_FILE text
----
FORM VALIDATE_FILE USING F_FILE TYPE RLGRAP-FILENAME.
DATA: ITAB TYPE TABLE OF STRING.
DATA: WA TYPE STRING.
OPEN DATASET P_FILE FOR INPUT IN TEXT MODE ENCODING DEFAULT .
IF SY-SUBRC = 0.
DO.
READ DATASET P_FILE INTO WA.
IF sy-subrc = 0.
EXIT.
ENDIF.
APPEND WA TO ITAB.
ENDDO.
ENDIF.
CLOSE DATASET P_FILE.
ENDFORM. "VALIDATE_FILE
&----
*& Form CONVERT_XLS_ITAB
&----
text
----
FORM CONVERT_XLS_ITAB.
CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'
EXPORTING
FILENAME = P_FILE
I_BEGIN_COL = P_BEGCOL
I_BEGIN_ROW = P_BEGROW
I_END_COL = P_ENDCOL
I_END_ROW = P_ENDROW
TABLES
INTERN = IT_INTERN
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.
PERFORM MOVE_DATA.
ENDFORM. "CONVERT_XLS_ITAB
&----
*& Form MOVE_DATA
&----
text
----
FORM MOVE_DATA.
DATA: LV_INDEX TYPE I.
field-symbols <FS>.
SORT IT_INTERN BY ROW COL.
CLEAR IT_INTERN.
LOOP AT IT_INTERN.
MOVE IT_INTERN-COL TO LV_INDEX.
ASSIGN COMPONENT LV_INDEX OF STRUCTURE IT_DATA TO <FS>.
MOVE IT_INTERN-VALUE TO <FS>.
AT END OF ROW.
APPEND IT_DATA.
CLEAR IT_DATA.
ENDAT.
ENDLOOP.
ENDFORM. "MOVE_DATA
&----
*& Form DELETE_HEADER_EMPTY_RECS
&----
text
----
FORM DELETE_HEADER_EMPTY_RECS.
DATA:LV_TABIX LIKE SY-TABIX.
IF NOT p_header IS INITIAL.
LOOP AT IT_DATA.
IF P_HEADER > 0 AND NOT IT_DATA IS INITIAL.
DELETE IT_DATA FROM 1 TO P_HEADER.
EXIT.
ENDIF.
ENDLOOP.
ENDIF.
CLEAR IT_DATA.
LOOP AT IT_DATA.
LV_TABIX = SY-TABIX.
IF IT_DATA IS INITIAL.
V_EMPTY = V_EMPTY + 1.
DELETE IT_DATA INDEX LV_TABIX.
ENDIF.
ENDLOOP.
CLEAR IT_DATA.
DESCRIBE TABLE IT_DATA LINES V_TOTAL.
IF V_TOTAL = 0.
F_STOP = 'X'.
STOP.
ENDIF.
ENDFORM. "DELETE_HEADER_EMPTY_RECS
&----
*& Form UPLOAD_CUSTMAS
&----
text
----
FORM UPLOAD_CUSTMAS.
LOOP AT IT_DATA.
PI_PERSONALDATA-TITLE_P = IT_DATA-AD_TITLETX.
PI_PERSONALDATA-FIRSTNAME = IT_DATA-AD_NAMEFIR.
PI_PERSONALDATA-LASTNAME = IT_DATA-AD_NAMELAS.
PI_PERSONALDATA-MIDDLENAME = IT_DATA-AD_NAMEMID.
Pi_personaldata-date_birth = IT_DATA-GBDAT.
PI_PERSONALDATA-REGION = IT_DATA-REGIO.
PI_PERSONALDATA-CITY = IT_DATA-AD_CITY1.
PI_PERSONALDATA-LANGU_P = IT_DATA-SPRAS.
PI_PERSONALDATA-DISTRICT = IT_DATA-AD_CITY2.
PI_PERSONALDATA-POSTL_COD1 = IT_DATA-AD_PSTCD1.
PI_PERSONALDATA-PO_BOX = IT_DATA-AD_POBX.
PI_PERSONALDATA-STREET = IT_DATA-AD_STREET.
PI_PERSONALDATA-HOUSE_NO = IT_DATA-AD_HSNM1.
PI_PERSONALDATA-BUILDING = IT_DATA-AD_BLDNG.
PI_PERSONALDATA-ROOM_NO = IT_DATA-AD_ROOMNUM.
Pi_personaldata-country = IT_DATA-LAND1.
Pi_personaldata-title_key = IT_DATA-AD_TITLE.
PI_PERSONALDATA-CURRENCY = IT_DATA-WAERS.
PI_COPYREFERENCE-SALESORG = IT_DATA-VKORG.
PI_COPYREFERENCE-DISTR_CHAN = IT_DATA-VTWEG.
PI_COPYREFERENCE-DIVISION = IT_DATA-SPART.
PI_COPYREFERENCE-REF_CUSTMR = IT_DATA-REFKUNNR.
CUSTOMERNO-CUSTOMER = IT_DATA-KUNNR.
CALL FUNCTION 'BAPI_CUSTOMER_CREATEFROMDATA1'
EXPORTING
PI_PERSONALDATA = BAPIKNA101_1
PI_OPT_PERSONALDATA =
PI_COMPANYDATA =
PI_OPT_COMPANYDATA =
PI_CONSUMEREN =
PI_COPYREFERENCE = BAPIKNA102
PI_CREDIT_CONTROL_FLAG =
IMPORTING
CUSTOMERNO = BAPIKNA103
RETURN = BAPIRETURN1
.
IF RETURN-TYPE = 'E'.
WRITE:/ 'ERROR' ,RETURN-MESSAGE,'FOR CUSTOMER' ,IT_DATA-KUNNR.
ELSEIF RETURN-TYPE = 'S'.
WRITE:'SUCCESFULLY CREATED CUSTOMER', IT_DATA-KUNNR.
ENDIF.
ENDLOOP.
ENDFORM. "UPLOAD_CUSTMAS
thanks & regards,
Suresh Maniarasu
‎2009 May 21 7:14 AM