Application Development and Automation 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: 
Read only

Create Sales Activity BAPI

Former Member
0 Likes
1,242

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.


9 REPLIES 9
Read only

Former Member
0 Likes
1,049

* 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.
Read only

Former Member
0 Likes
1,049

Bump... really desperate to get this working. Anyone that can answer this is my hero.

Read only

Former Member
0 Likes
1,049

Another attempt at someone noticing this thread...?

Read only

0 Likes
1,049

Hi, have you found the solution ? I am looking for a good example of using this function module.

Regards

Read only

Former Member
0 Likes
1,049

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.

Read only

0 Likes
1,049

I never solved this issue, I used BTCI instead.

Read only

0 Likes
1,049

Hi Brad,

Thank you very much for your response. I'll try to open an OSS to SAP about this problem.

Regards,

Asier.

Read only

0 Likes
1,049

Great if they solve it for you please post the solution 🙂

Read only

Former Member
0 Likes
1,049

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.