‎2009 Nov 10 1:18 AM
Hi All
This is my second attempt at using this BAPI in recent months. I get the following messages in my return table:
Start processing of reference object - Handle generated: $000000001
Integrity rule S0003 broken (procedure) - Object $000000001 !
Edit all incomplete fields
Can anyone help me????
I'll post my code in 2 halves because of the 2500 character limit..
* BAPI_BPCONTACT_SAVEFROMMEMORY Declarations
DATA: LT_SALESACTIVITYIDOUT LIKE BAPI_VBKA_BOIDREF OCCURS 0 WITH HEADER LINE,
LT_RETURN LIKE BAPIRET2 OCCURS 0,
LS_RETURN LIKE LINE OF LT_RETURN.
* BAPI_BPCONTACT_CREATEFROMDATA Declarations
DATA: LV_SYS TYPE BAPI_SENDER,
LT_GENERALDATA LIKE BAPI_BUS1037_VBKAKOM_CR OCCURS 0,
LS_GENERALDATA LIKE LINE OF LT_GENERALDATA,
LT_BUSINESSPARTNER LIKE BAPI_VBKA_VBPA2KOM OCCURS 0,
LS_BUSINESSPARTNER LIKE LINE OF LT_BUSINESSPARTNER,
LT_TEXT LIKE BAPI_VBKA_TLINEKOM OCCURS 0,
LS_TEXT LIKE LINE OF LT_TEXT.
* BAPI field initialization
LS_GENERALDATA-ACTIVITY_TYPE = 'Z003'.
LS_GENERALDATA-DOC_NUMBER = SPACE.
*LS_GENERALDATA-REFDOCTYPE = '1'.
*LS_GENERALDATA-REFRELTYPE = '9'.
LS_GENERALDATA-SALESORG = 'Sales Org'.
LS_GENERALDATA-DISTR_CHAN = 'Dist Channel'.
LS_GENERALDATA-SALES_OFF = 'Sales Office'.
LS_GENERALDATA-SALES_GRP = 'Sales Group'.
LS_GENERALDATA-DIVISION = 'Division'.
LS_GENERALDATA-FROM_DATE = SY-DATUM.
LS_GENERALDATA-TO_DATE = SY-DATUM.
LS_GENERALDATA-FROM_TIME = SY-UZEIT.
LS_GENERALDATA-TO_TIME = SY-UZEIT.
*LS_GENERALDATA-FOLLOW_UP_TYPE = '0001'.
LS_GENERALDATA-FOLLOW_UP_DATE = SY-DATUM.
LS_GENERALDATA-REASON = 'Z02'.
LS_GENERALDATA-RESULT = '005'.
LS_GENERALDATA-DIRECTION = '0'.
LS_GENERALDATA-STATE = '5'. "STATUS
LS_GENERALDATA-ACTIVITY_COMMENT = 'Test subject'.
LS_GENERALDATA-PARTN_ROLE = 'AG'.
LS_GENERALDATA-PARTN_ID = '0000059194'.
LS_GENERALDATA-LANGU = 'E'.
LS_GENERALDATA-CONTACT = '0000000861'.
LS_GENERALDATA-CONTACT_ROLE = 'AP'.
APPEND LS_GENERALDATA TO LT_GENERALDATA.
‎2009 Nov 10 1:19 AM
* Sold to party
LS_BUSINESSPARTNER-ITM_NUMBER = '000001'.
LS_BUSINESSPARTNER-PARTN_ROLE = 'AG'. "GERMAN = AG ENGLISH = SP
LS_BUSINESSPARTNER-PARTN_ID = '0000059194'.
APPEND LS_BUSINESSPARTNER TO LT_BUSINESSPARTNER.
* Sales Employee
LS_BUSINESSPARTNER-ITM_NUMBER = '000002'.
LS_BUSINESSPARTNER-PARTN_ROLE = 'VE'. "GERMAN = VE
LS_BUSINESSPARTNER-PARTN_ID = '1001'.
APPEND LS_BUSINESSPARTNER TO LT_BUSINESSPARTNER.
* Contact
LS_BUSINESSPARTNER-ITM_NUMBER = '000003'.
LS_BUSINESSPARTNER-PARTN_ROLE = 'AP'. "GERMAN = AP ENGLISH = CP
LS_BUSINESSPARTNER-PARTN_ID = '861'.
APPEND LS_BUSINESSPARTNER TO LT_BUSINESSPARTNER.
* Employee Responsible
LS_BUSINESSPARTNER-ITM_NUMBER = '000004'.
LS_BUSINESSPARTNER-PARTN_ROLE = 'ZM'. "GERMAN = ZM ENGLISH = ER
LS_BUSINESSPARTNER-PARTN_ID = '1001'.
APPEND LS_BUSINESSPARTNER TO LT_BUSINESSPARTNER.
DATA: LS_NOTES LIKE TLINE OCCURS 0 WITH HEADER LINE.
LS_NOTES-TDFORMAT = '*'.
LS_NOTES-TDLINE = 'Copy of signed agreement'.
LS_TEXT-TEXT_ID = '0001'.
LS_TEXT-FUNCTION = '009'.
LS_TEXT-LANGU = SY-LANGU.
LS_TEXT-TEXT_LINE = LS_NOTES.
APPEND LS_TEXT TO LT_TEXT.
CALL FUNCTION 'OWN_LOGICAL_SYSTEM_GET'
IMPORTING
OWN_LOGICAL_SYSTEM = LV_SYS
EXCEPTIONS
OWN_LOGICAL_SYSTEM_NOT_DEFINED = 1
OTHERS = 2.
* Call BAPI
CALL FUNCTION 'BAPI_BPCONTACT_CREATEFROMDATA'
EXPORTING
SENDER = LV_SYS
TABLES
GENERALDATA = LT_GENERALDATA
BUSINESSPARTNER = LT_BUSINESSPARTNER
TEXT = LT_TEXT
RETURN = LT_RETURN.
* Check for error
DATA: V_MESSAGE(200) TYPE C.
LOOP AT LT_RETURN INTO LS_RETURN.
CALL FUNCTION 'FORMAT_MESSAGE'
EXPORTING
ID = LS_RETURN-ID
LANG = 'E'
NO = LS_RETURN-NUMBER
V1 = LS_RETURN-MESSAGE_V1
V2 = LS_RETURN-MESSAGE_V2
V3 = LS_RETURN-MESSAGE_V3
V4 = LS_RETURN-MESSAGE_V4
IMPORTING
MSG = V_MESSAGE.
CALL FUNCTION 'POPUP_TO_DISPLAY_TEXT'
EXPORTING
TITEL = 'Error'
TEXTLINE1 = V_MESSAGE.
ENDLOOP.
IF SY-SUBRC NE 0.
REFRESH LT_RETURN.
CALL FUNCTION 'BAPI_BPCONTACT_SAVEFROMMEMORY'
TABLES
SALESACTIVITYIDOUT = LT_SALESACTIVITYIDOUT
RETURN = LT_RETURN.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'.
ENDIF.
‎2009 Nov 10 10:45 PM
Bump... really desperate to get this working. Anyone that can answer this is my hero.
‎2009 Nov 15 11:38 PM
‎2010 Apr 12 12:12 PM
Hi, have you found the solution ? I am looking for a good example of using this function module.
Regards
‎2014 Feb 03 11:57 AM
Can somebody tell me something about this issue please? I've the same problem when i try to change the status and I don't find anything about.
‎2014 Feb 03 6:21 PM
‎2014 Feb 04 8:06 AM
Hi Brad,
Thank you very much for your response. I'll try to open an OSS to SAP about this problem.
Regards,
Asier.
‎2014 Feb 25 8:57 PM
Great if they solve it for you please post the solution 🙂
‎2014 May 06 4:16 PM
Hi Brad,
I solve with this code:
- BAPI field:
ls_generaldata-activity_type = gp_ktaar.
ls_generaldata-salesorg = ls_vbak-vkorg.
ls_generaldata-distr_chan = ls_vbak-vtweg.
ls_generaldata-sales_off = ls_vbak-vkbur.
ls_generaldata-sales_grp = ls_vbak-vkgrp.
ls_generaldata-division = ls_vbak-spart.
ls_generaldata-from_date = gp_ktabg.
ls_generaldata-to_date = gp_ktaen.
ls_generaldata-reason = gp_ktagr.
ls_generaldata-state = '0'.
ls_generaldata-activity_comment = gp_ktext.
ls_generaldata-partn_role = 'AG'.
ls_generaldata-partn_id = ls_vbak-kunnr.
ls_generaldata-langu = sy-langu.
append ls_generaldata to lt_generaldata.
- Sold to party
ls_businesspartner-partn_role = 'AG'.
ls_businesspartner-partn_id = ls_vbak-kunnr..
append ls_businesspartner to lt_businesspartner.
- Logical system name
call function 'OWN_LOGICAL_SYSTEM_GET'
importing
own_logical_system = ld_sys
exceptions
own_logical_system_not_defined = 1
others = 2.
- Call BAPIs_
call function 'BAPI_BPCONTACT_CREATEFROMDATA'
exporting
sender = ld_sys
tables
generaldata = lt_generaldata
businesspartner = lt_businesspartner
return = lt_return.
call function 'BAPI_BPCONTACT_SAVEFROMMEMORY'
tables
salesactivityidout = lt_salesactivityidout
return = lt_return.
call function 'BAPI_TRANSACTION_COMMIT'
exporting
wait = 'X'
importing
return = ls_return.
Regars,
Asier.