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: 

BAPI needed for Notification & Work order

former_member404244
Active Contributor
0 Kudos

Hello All,

Can any one suggest a BAPI for the creation of Notification and work order .I have a requirement in which with transaction IW21 I have to create a nottification and also a wrok order related to that notification.

Please suggest some bapi if any one has worked on this scenario.

Regards,

Nagaraj.

4 REPLIES 4

Former Member
0 Kudos

Hi,

u have to call the following three bapis in sequence to create the notification:

'BAPI_ALM_NOTIF_CREATE'

'BAPI_ALM_NOTIF_SAVE'

'bapi_transaction_commit'

List of all BAPIs

http://www.planetsap.com/LIST_ALL_BAPIs.htm

Thanks,

Reward If Helpful.

Former Member
0 Kudos

Hi!

You might try out his for notification:

BAPI_SERVICENOTIFICAT_CREATE Create service notification

We are using BDC, instead of BAPI, it was much easier to make work...

For work order, above or equals to SAP version 4.7:

BAPI_ALM_ORDER_MAINTAIN Process Maintenance-/Service Order

For lower version go for BDC...

Regards

Tamá

Former Member
0 Kudos

Hi

\you can use this bapi

i guess it will work

BAPI_ALM_ORDER_MAINTAIN

reward if helpful

vivekanand

Former Member
0 Kudos

pls go through this code ...

i hope this would be helpful

DATA: lt_objk TYPE TABLE OF objk WITH HEADER LINE,

lt_vbad TYPE TABLE OF sadrvb WITH HEADER LINE,

lt_vbpa TYPE TABLE OF vbpavb WITH HEADER LINE,

lt_tpaer TYPE TABLE OF tpaer WITH HEADER LINE,

lv_objnr TYPE jest-objnr,

lv_stsma TYPE jsto-stsma,

lv_statnum TYPE jest-stat,

lt_status TYPE TABLE OF jstat,

ls_vbak LIKE vbak,

ls_vbkd LIKE vbkd,

ls_tq80 LIKE tq80,

ls_qmei LIKE bapi2080_nothdri,

ls_qmee LIKE bapi2080_nothdre,

lt_ret TYPE TABLE OF bapiret2 WITH HEADER LINE.

CONSTANTS: c_qmart LIKE qmel-qmart VALUE 'ZC'.

PARAMETERS: pa_kdanr LIKE vbak-vbeln OBLIGATORY.

  • Informationen zur Meldungsart bereitstellen

SELECT SINGLE * FROM tq80 INTO ls_tq80

WHERE qmart = c_qmart.

SELECT * FROM tpaer INTO TABLE lt_tpaer

WHERE pargr EQ ls_tq80-pargr.

  • Auftragskopf

CALL FUNCTION 'SD_VBAK_SINGLE_READ'

EXPORTING

i_vbeln = pa_kdanr

i_bypassing_buffer = 'X'

  • I_REFRESH_BUFFER =

IMPORTING

e_vbak = ls_vbak

EXCEPTIONS

record_not_found = 1

OTHERS = 2.

IF sy-subrc <> 0.

MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno

WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

ENDIF.

  • Bestellinformationen

CALL FUNCTION 'SD_VBKD_SELECT'

EXPORTING

i_document_number = pa_kdanr

  • I_ITEM_NUMBER =

IMPORTING

e_vbkd = ls_vbkd

EXCEPTIONS

entry_not_found = 1

OTHERS = 2

.

IF sy-subrc <> 0.

  • message id sy-msgid type sy-msgty number sy-msgno

  • with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

ENDIF.

  • Partner

CALL FUNCTION 'SD_PARTNER_READ'

EXPORTING

f_vbeln = pa_kdanr

no_master_adress = 'X'

TABLES

i_xvbadr = lt_vbad

i_xvbpa = lt_vbpa.

  • Equipment

CALL FUNCTION 'IWOL_WV_GET_DDB'

EXPORTING

i_sdaufnr = pa_kdanr

i_aktyp = 'A'

TABLES

i_objk = lt_objk

EXCEPTIONS

no_object_list = 1

OTHERS = 2.

IF sy-subrc <> 0.

MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno

WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

ENDIF.

READ TABLE lt_objk INDEX 1.

  • Vorbereitung für Status-Aktionen

PERFORM status_handle.

CALL FUNCTION 'STATUS_CHECK'

EXPORTING

objnr = lv_objnr

status = lv_statnum

EXCEPTIONS

object_not_found = 1

status_not_active = 2

OTHERS = 3.

IF sy-subrc EQ 2.

MOVE: ls_vbkd-bstkd TO ls_qmei-purch_no_c,

lt_objk-equnr TO ls_qmei-equipment,

ls_vbak-vdatu TO ls_qmei-desstdate,

ls_vbak-vdatu TO ls_qmei-desenddate,

text-001 TO ls_qmei-short_text.

CALL FUNCTION 'BAPI_ALM_NOTIF_CREATE'

EXPORTING

  • EXTERNAL_NUMBER =

notif_type = c_qmart

notifheader = ls_qmei

  • TASK_DETERMINATION = ' '

  • SENDER =

  • ORDERID =

IMPORTING

notifheader_export = ls_qmee

TABLES

  • NOTIFPARTNR =

return = lt_ret.

CALL FUNCTION 'BAPI_ALM_NOTIF_SAVE'

EXPORTING

number = ls_qmee-notif_no

  • IMPORTING

  • NOTIFHEADER =

TABLES

return = lt_ret.

IF lt_ret[] IS INITIAL.

IF NOT lv_statnum IS INITIAL.

CALL FUNCTION 'STATUS_CHANGE_EXTERN'

EXPORTING

objnr = lv_objnr

user_status = lv_statnum.

ENDIF.

CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'

EXPORTING

wait = 'X'

IMPORTING

return = lt_ret.

ELSE.

CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'

IMPORTING

return = lt_ret.

ENDIF.

ELSE.

WRITE: / 'Not possible --> STATUS'.

ENDIF.

*&----


*

*& Form status_handle

*&----


*

  • text

*----


*

FORM status_handle.

CONCATENATE 'IE' lt_objk-equnr INTO lv_objnr.

CALL FUNCTION 'STATUS_READ'

EXPORTING

objnr = lv_objnr

IMPORTING

stsma = lv_stsma

EXCEPTIONS

object_not_found = 1

OTHERS = 2.

IF sy-subrc <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

CHECK NOT lv_stsma IS INITIAL.

  • Statusnummer des neuen Status ermitteln

CALL FUNCTION 'STATUS_TEXT_CONVERSION'

EXPORTING

language = 'D'

mode = 'E'

stsma = lv_stsma

txt04 = 'US1 '

IMPORTING

status_number = lv_statnum

EXCEPTIONS

insufficient_input = 1

not_found = 2

object_not_found = 3

wrong_mode = 4

OTHERS = 5.

IF sy-subrc <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

ENDFORM. "status_handle

reward points if help ful...........