SAP ISH ABAP
From SapWiki
Contents
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.