Thursday, December 22, 2016

concerning iDOCs

Transactions

WE05IDOC Liste
WE09IDOC(Nach IDOCS über Inhalte bzw. Felder suchen)
WE20Partnevereinbarungen(Verb. Zwischen Belegen und IDOC Generiereung)
BD87Nachverarbeitung von IDOCS
WE19Anlage und Verarbeitung von Testidocs(Als Vorlage bestehendes IDOC)
WEDIÜberblick
WE60Dokumention Idoc Struktur

Tables

TBDBEBAPI-ALE Interface for Inbound Processing
Function modules to process inbound, per message type

Function Modules

BAPI_IDOC_INPUT1Inbound BAPI IDoc: Individual Processing

Friday, December 9, 2016

function module to get list of application servers

    call function 'TH_SERVER_LIST'
      tables
        list           lt_server
      exceptions
        no_server_list 1
        others         2.

check with abap which jobs are running

select single jobname 
  from tbtco 
  into lv_jobname
  where 

    jobname like lv_jobname_pat and 
    status 'R'.

create and start background jobs from abap

    data lv_job_was_released type abap_bool.
    data lv_ret type i.
    data lv_stepcount type btcstepcnt.

    call function 'JOB_OPEN'
      exporting
        jobname          = lv_jobname
      importing
        jobcount         = lv_jobcount
      changing
        ret              lv_ret
      exceptions
        cant_create_job  1
        invalid_job_data 2
        jobname_missing  3
        others           4.

    if sy-subrc <> 0.
      " ...
      return.
    endif.

*    submit (mo_run->ms_run-client_report)
*      using selection-set mv_variant
*      user sy-uname via job mv_jobname number mv_jobcount
*      and return.
* Starting the report with submit, SM37  will display a 

* temporary variant 0.. insteat of the created variant 

    call function 'JOB_SUBMIT'
      exporting
        authcknam               sy-uname
        jobcount                = lv_jobcount
        jobname                 = lv_jobname
        report                  = lv_client_report
        variant                 = lv_variant
      importing
        step_number             lv_stepcount
      exceptions
        bad_priparams           1
        bad_xpgflags            2
        invalid_jobdata         3
        jobname_missing         4
        job_notex               5
        job_submit_failed       6
        lock_failed             7
        program_missing         8
        prog_abap_and_extpg_set 9
        others                  10.

    if sy-subrc <> 0.
      " ...
      return.
    endif.

    call function 'JOB_CLOSE'
      exporting
        jobcount             = lv_jobcount
        jobname              = lv_jobname
        targetsystem         = lv_server
        strtimmed            'X' " start immediately
      importing
        job_was_released     lv_job_was_released
      changing
        ret                  lv_ret
      exceptions
        cant_start_immediate 1
        invalid_startdate    2
        jobname_missing      3
        job_close_failed     4
        job_nosteps          5
        job_notex            6
        lock_failed          7
        invalid_target       8
        others               9.

    if sy-subrc <> 0.
      " ...
      return.
    endif.

save report variants for jobs

    data ls_varid type varid.
    data ls_varit type varit.
    data lt_varit type standard table of varit with empty key.
 
    ls_varid-mandt      sy-mandt" Mandant
    ls_varid-report     = lv_client_report
    ls_varid-variant    lv_variant
    ls_varid-flag1      ''

    ls_varid-flag2      ''
    ls_varid-transport  ''
    ls_varid-environmnt 'B'" Batch
    ls_varid-protected  ''
    ls_varid-secu       ''" Berechtigungsgruppe
    ls_varid-version    ''" Versionsnummer der Variante
    ls_varid-ename      sy-uname
    ls_varid-edat       sy-datum
    ls_varid-etime      sy-uzeit
    ls_varid-aename     sy-uname
    ls_varid-aedat      sy-datum
    ls_varid-aetime     sy-uzeit
    ls_varid-mlangu     sy-langu
    ls_varid-xflag1     ''
    ls_varid-xflag2     ''

    ls_varit-mandt sy-mandt.
    ls_varit-langu sy-langu.
    ls_varit-report = lv_client_report.
    ls_varit-variant = lv_variant.
    ls_varit-vtext |My Variant { sy-datum date iso } | ?? 

      |{ sy-uzeit time iso }|.
    insert ls_varit into table lt_varit.

    call function 'RS_CREATE_VARIANT'
      exporting
        curr_report               = lv_client_report
        curr_variant              lv_variant
        vari_desc                 ls_varid
      tables
        vari_contents             lt_rsparam
        vari_text                 lt_varit
      exceptions
        illegal_report_or_variant 1
        illegal_variantname       2
        not_authorized            3
        not_executed              4
        report_not_existent       5
        report_not_supplied       6
        variant_exists            7
        variant_locked            8
        others                    9.

    if sy-subrc 0.
      commit work.


    else.
      " s...
    endif.

SAP ABAP: Determine Timezone for Plant

    DATA:       lt_tzone TYPE STANDARD TABLE OF tznzone WITH DEFAULT KEY,       l_tzone  TYPE tznzone.     " get time zone for plant   ...