cancel
Showing results for 
Search instead for 
Did you mean: 

How to Create incident accident log (CBIH82) programmatically?

Former Member
0 Kudos

Hi,

I want to create and update incident accident log programmatically. In R/3 we can do this by using transaction code CBIH82. And i think for this the following FM will use:

1)Creating incident accident log no: CBIH_IA30_IAL_CREATE

2)Updating incident accident log: CBIH_IA30_IAL_UPDATE

3)Read incident accident log : CBIH_IA30_IAL_READ

4)Save incident accident log : CBIH_IA30_IAL_SAVE_TO_DB

But I am not getting how you use that for creating and updating incident log. So please provide me the code or guideline to do this.

Regards,

Vikram

Accepted Solutions (0)

Answers (1)

Answers (1)

Former Member
0 Kudos

Use this code to create the incidident

*"----


  • Translate Work area to a sequence number
  • Validate Plant
  • No persons supplied in Involved Table are Valid
  • Need to discuss about this condtion
  • Populate persons Involved table
  • Get Inicident controllers
  • populate Incident Controllers
  • Populate Incident Long Text
  • Create an Incident
  • Check If there is any Error
  • Successfully Incident Created
""Local Interface: *" IMPORTING *" VALUE(I_PLANT) TYPE WERKS_D *" VALUE(I_EVDATE) TYPE DATS *" VALUE(I_EVTIME) TYPE CCIHE_EVTIME *" VALUE(I_EVDESC) TYPE CCIHE_EVDESCLXT *" VALUE(I_WORKAREA) TYPE CCIHE_WAID *" VALUE(I_ACCIDENTLOCATION) TYPE CCIHE_ACLOCDESC OPTIONAL *" EXPORTING *" VALUE(E_INCIDENT) TYPE CCIHE_IALID *" VALUE(E_IALID) TYPE CCIHE_IALID *" VALUE(E_STATUS) TYPE CHAR4 *" VALUE(E_RETURN) TYPE BAPIRET2 *" TABLES *" INVOLVED STRUCTURE ZEHS_IP_STRUCT *" LONGTEXT STRUCTURE TLINE *"----
CONSTANTS:c_zihs TYPE tdid VALUE 'ZIHS', c_eng TYPE spras VALUE 'E', c_e TYPE c VALUE 'E', c_a TYPE c VALUE 'A', c_c TYPE c VALUE 'C', c_star TYPE c VALUE '*', c_inc(3) TYPE c VALUE 'INC', c_000(3) TYPE c VALUE '000', c_crtd(4) TYPE c VALUE 'CRTD', c_object TYPE tdobject VALUE 'Z_IHS_IAL'. TYPES:BEGIN OF ty_inc_type, ippers LIKE cciht_ip-ippers, " Person Involved END OF ty_inc_type, BEGIN OF ty_but000, partner TYPE bu_partner, " Business Partner Number END OF ty_but000, tt_but000 TYPE STANDARD TABLE OF ty_but000, BEGIN OF ty_pa0001, pernr TYPE persno, " Person Number END OF ty_pa0001, tt_pa0001 TYPE STANDARD TABLE OF ty_pa0001. DATA: l_recn TYPE cciht_wah-recn, l_addinf TYPE rcgaddinf, lt_api_ial_tab TYPE cihal_ial_api_tab_type, wa_api_ial_tab TYPE cihal_ial_api_wa_type, lt_invpers_tab TYPE TABLE OF cihal_invpersa_api_wa_type, wa_invpers_tab TYPE cihal_invpersa_api_wa_type, wa_api_invpers_ltxt_tab TYPE cihal_ipltapi_wa_type, int_api_invpers_ltxt_tab TYPE cihal_ipltapi_tab_type, l_cciht_ial TYPE cciht_ial, wa_api_header_tab TYPE cihal_ialhapi_wa_type, lt_api_header_tab TYPE cihal_ialhapi_tab_type, wa_involved TYPE yehs_ip_struct, wa_freetext_tab TYPE cih01_dft_api_tab_type, wa_longtext TYPE ccihs_longtextapi, wa_longtext_tab TYPE cihal_ipltapi_tab_type, lt_freetext_tab TYPE cih01_dft_api_tab_type, lt_pa0001 TYPE tt_pa0001, lt_pa0001_temp TYPE tt_pa0001 WITH HEADER LINE, lt_but000 TYPE tt_but000, wa_thead TYPE thead, wa_tline TYPE tline, lt_tline TYPE TABLE OF tline, wa_inc TYPE ty_inc_type, lt_inc TYPE TABLE OF ty_inc_type, l_pernr TYPE persno, l_flag TYPE c, l_strlen TYPE i, l_num TYPE symsgno, l_werks TYPE werks_d, l_partner TYPE bu_partner. DATA : lo_num TYPE REF TO cx_sy_conversion_no_number. CLEAR l_recn. CALL FUNCTION 'CBIH_LB10_TRANS_WAID_TO_RECN' EXPORTING i_waid = i_workarea IMPORTING e_recn = l_recn EXCEPTIONS wa_not_found = 1 OTHERS = 2. IF sy-subrc <> 0. e_return-type = c_e. " Error e_return-message = 'Work Area Not Found'(001). RETURN. ENDIF. SELECT SINGLE werks FROM t001w INTO l_werks WHERE werks EQ i_plant. IF sy-subrc NE 0. e_return-type = c_e. MESSAGE s326(v1) WITH i_plant INTO e_return-message. RETURN. ENDIF. CLEAR:l_addinf. l_addinf-valdat = sy-datum. *validate Involved persons IF involved[] IS NOT INITIAL. LOOP AT involved INTO wa_involved. CLEAR lt_pa0001_temp. TRY. MOVE wa_involved-ippers+0(8) TO lt_pa0001_temp-pernr . APPEND lt_pa0001_temp. CATCH cx_sy_conversion_no_number INTO lo_num. e_return = c_e. CALL METHOD lo_num->get_text RECEIVING result = e_return-message. RETURN. ENDTRY. CLEAR wa_involved. ENDLOOP. SELECT pernr INTO TABLE lt_pa0001 FROM pa0001 FOR ALL ENTRIES IN lt_pa0001_temp[] WHERE pernr = lt_pa0001_temp-pernr AND begda <= sy-datum AND endda >= sy-datum AND persg = 1. IF sy-subrc NE 0. l_flag = c_x. ELSE. SORT lt_pa0001 BY pernr. ENDIF. *Get all external partners SELECT partner INTO TABLE lt_but000 FROM but000 FOR ALL ENTRIES IN involved[] WHERE partner = involved-ippers. IF sy-subrc NE 0 AND l_flag EQ c_x. ELSE. SORT lt_but000 BY partner. ENDIF. ENDIF. LOOP AT involved INTO wa_involved WHERE ippers NE space. CLEAR: wa_invpers_tab. READ TABLE lt_pa0001 WITH KEY pernr = wa_involved-ippers BINARY SEARCH TRANSPORTING NO FIELDS. IF sy-subrc EQ 0. wa_invpers_tab-head-iptype = wa_involved-iptype. wa_invpers_tab-head-ippers = wa_involved-ippers. wa_invpers_tab-head-ippersgrp = c_c. APPEND wa_invpers_tab TO lt_invpers_tab. ELSE. *check if external partner READ TABLE lt_but000 WITH KEY partner = wa_involved-ippers BINARY SEARCH TRANSPORTING NO FIELDS. IF sy-subrc EQ 0. wa_invpers_tab-head-iptype = wa_involved-iptype. wa_invpers_tab-head-ippers = wa_involved-ippers. wa_invpers_tab-head-ippersgrp = c_a. APPEND wa_invpers_tab TO lt_invpers_tab. ENDIF. ENDIF. CLEAR wa_involved. ENDLOOP. CALL FUNCTION 'ZEH_GET_INC_DETAILS' EXPORTING i_recn = l_recn i_iptype = c_inc TABLES int_ippers = lt_inc. LOOP AT lt_inc INTO wa_inc. wa_invpers_tab-head-iptype = c_inc. wa_invpers_tab-head-ippers = wa_inc-ippers. wa_invpers_tab-head-ippersgrp = c_a. APPEND wa_invpers_tab TO lt_invpers_tab. CLEAR : wa_invpers_tab, wa_inc. ENDLOOP. IF NOT longtext[] IS INITIAL. LOOP AT longtext INTO wa_tline. wa_tline-tdformat = c_star. APPEND wa_tline TO lt_tline. CLEAR wa_tline. ENDLOOP. ENDIF. wa_api_ial_tab-head-iaplant = i_plant. wa_api_ial_tab-head-evdat = i_evdate. wa_api_ial_tab-head-evtime = i_evtime. wa_api_ial_tab-head-evdesc = i_evdesc. wa_api_ial_tab-head-recntwah = l_recn. wa_api_ial_tab-head-iatype = c_000. wa_api_ial_tab-head-mtnlangu = sy-langu. wa_api_ial_tab-invpersons_tab[] = lt_invpers_tab[]. APPEND wa_api_ial_tab TO lt_api_ial_tab. CALL FUNCTION 'CBIH_IA30_IAL_CREATE' EXPORTING i_addinf = l_addinf i_flg_header = esp1_true i_flg_invpers = esp1_true i_flg_invpers_ltxt = esp1_true i_flg_freetext = esp1_true i_flg_freetext_ltxt = esp1_true TABLES x_api_ial_tab = lt_api_ial_tab EXCEPTIONS no_object_specified = 1 parameter_error = 2 internal_error = 3 convmode_set_failed = 4 OTHERS = 5. IF sy-subrc NE 0. e_return-type = c_e. MESSAGE ID sy-msgid TYPE c_s NUMBER sy-msgno WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4 INTO e_return-message. RETURN. ENDIF. CLEAR:wa_api_ial_tab. READ TABLE lt_api_ial_tab INTO wa_api_ial_tab INDEX 1. IF wa_api_ial_tab-head-errormode EQ c_e. l_strlen = STRLEN( wa_api_ial_tab-head-errorinfo ). IF l_strlen GE 4. l_num = wa_api_ial_tab-head-errorinfo+1(3). ELSE. l_num = wa_api_ial_tab-head-errorinfo. ENDIF. e_return-type = c_e. MESSAGE ID wa_api_ial_tab-head-errorclass TYPE c_s NUMBER l_num WITH wa_api_ial_tab-head-errorparam INTO e_return-message. RETURN. ELSE. e_ialid = wa_api_ial_tab-head-ialid. CALL FUNCTION 'CBIH_IA30_IAL_SAVE_TO_DB'. ENDIF. *populate long text IF NOT longtext[] IS INITIAL. wa_thead-tdid = c_zihs. wa_thead-tdname = wa_api_ial_tab-head-ialid. wa_thead-tdspras = c_eng. wa_thead-tdobject = c_object. CALL FUNCTION 'CREATE_TEXT' EXPORTING fid = wa_thead-tdid flanguage = c_eng fname = wa_thead-tdname fobject = wa_thead-tdobject save_direct = esp1_true TABLES flines = lt_tline EXCEPTIONS no_init = 1 no_save = 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. ENDIF. *

Edited by: Rizwan Ahmad Siddiqui on Mar 1, 2010 5:13 AM