SAP ISH ABAP

From SapWiki

Obtener extensión de documento (tabla NDOC)

    data: ls_appl_data type RN2DT_APPLICATION,
          ls_pcdta type N2DTDTA.

      SELECT SINGLE dtid, dtvers into @data(ls_ndoc) FROM  ndoc
         WHERE  dokar  = @c_data-dokar
         AND    doknr  = @c_data-doknr
         AND    dokvr  = @c_data-dokvr
         AND    doktl  = @c_data-doktl. "#EC CI_SEL_NESTED

    CALL FUNCTION 'ISH_N2_READ_DOCUMENT_TYPE'
      EXPORTING
        ss_dtid                 = ls_ndoc-dtid
        ss_dtvers               = ls_ndoc-dtvers
        ss_einri                = c_data-einri
        SS_VCODE                = 'DIS'
      IMPORTING
*       SS_N2DT                 =
*       SS_N2DTT                =
        SS_PCDTA                = ls_pcdta
*       SS_ERROR_PCDTA          =
*       SS_DOCCATEGORY          =
*       SS_DOCCATEGORY_PC       =
*       SS_APPLICATION          =
        SS_APPL_NEW             = ls_appl_data
*       SS_FORMAT               =
     EXCEPTIONS
       NOT_FOUND_OBJECT        = 1
       WRONG_VCODE             = 2
       OTHERS                  = 3
              .
    IF sy-subrc = 0.
* Implement suitable error handling here
      c_data-extension = ls_pcdta-PCFEXT.
    else.
      c_data-extension = 'DOC'.
    ENDIF.

Obtener binario/visualizar documento

  data l_base64 type string.
  data lt_document type TABLE OF RN2PCRAW255.
  data l_length type N2_BYTES.

  data: lt_ndoc type STANDARD TABLE OF ndoc,
        ls_draw type DRAW.

  if i_bin = abap_true. "obtener binario de documenro (xstring)
  CALL FUNCTION 'ISH_N2_GET_CONTAINER_DOCUMENT'
    EXPORTING
      ss_dokar                  = c_data-dokar
      ss_doknr                  = c_data-doknr
      ss_dokvr                  = c_data-dokvr
      ss_doktl                  = c_data-doktl
    IMPORTING
      SS_FILE_LENGTH            = l_length
    TABLES
      ss_dokument_content       = lt_document
   EXCEPTIONS
     DOCUMENT_NOT_FOUND        = 1
     NO_RFC                    = 2
     OTHERS                    = 3
          .
  IF sy-subrc <> 0 or lt_document[] is INITIAL.
    return.
  ENDIF.

  CALL METHOD cl_faa_tenv_services=>convert_xtable_to_xstring
    EXPORTING
      it_xtable     = lt_document
    IMPORTING
      ed_xstring    = c_data-binfile
    EXCEPTIONS
      invalid_table = 1
      others        = 2
        .
  IF sy-subrc <> 0.
* Implement suitable error handling here
  ENDIF.
else. "visualizar documento

  SELECT  * into TABLE lt_ndoc FROM  ndoc
         WHERE  dokar  = c_data-dokar
         AND    doknr  = c_data-doknr
         AND    dokvr  = c_data-dokvr
         AND    doktl  = c_data-doktl. "#EC CI_SEL_NESTED
  if sy-subrc <> 0.
    return.
  endif.

  CALL FUNCTION 'ISH_N2_MEDICAL_DOCUMENT'
    EXPORTING
*     SS_BISDAT                =
      ss_einri                 = c_data-einri
      SS_MODE                  = space
*     SS_VONDAT                =
      ss_tcode                 = 'N203'
*     SS_SELKR                 = ' '
*     SS_ENQUE                 = ' '
*     SS_SET_SCREEN_FLAG       = ' '
*     SS_TITLE1                = ' '
*     SS_TITLE2                = ' '
*     SS_DOCLARCH              = ' '
*     SS_DKTXT                 =
*     SS_RAISE_BATCH           =
*   IMPORTING
*     SS_OKCODE                =
*     SS_TDWS                  =
*     SS_TDWST                 =
*     SS_CMD_ERROR             =
*     SS_SAVED                 =
   TABLES
     SS_NDOC                  = lt_ndoc
*     SS_COMMANDS              =
   CHANGING
     SS_DRAW                  = ls_draw
   EXCEPTIONS
     NO_DOCUMENT              = 1
     NO_INSERT                = 2
     CANCEL                   = 3
     OTHERS                   = 4
            .
  IF sy-subrc <> 0.
* Implement suitable error handling here
  ENDIF.


endif.

Datos paciente

* Datos del Paciente
  CALL FUNCTION 'ISH_READ_NPAT'
    EXPORTING
      ss_patnr              = iv_patnr
      ss_read_db            = abap_true
      ss_with_nadr          = abap_false
      ss_no_buffering       = abap_true
    IMPORTING
      ss_npat               = ls_npat
    EXCEPTIONS
      not_found             = 1
      no_authority          = 2
      no_einri              = 3
      no_treatment_contract = 4
      OTHERS                = 5.

Documentos paciente

    CALL FUNCTION 'ISH_N2_MEDDOC_GETLIST'
      EXPORTING
        im_maxrow              = lc_maxrow
        im_with_all_parts      = abap_false
      IMPORTING
        ex_number_of_documents = lv_numdocs
        et_documents_2         = c_documents
      TABLES
        filter_einri           = lr_einri
        filter_patnr           = lr_patnr
        filter_medok           = lr_medok
        filter_dodat           = lr_dodat.