0% found this document useful (0 votes)
20 views4 pages

SAP OData Invoice List Retrieval

Code

Uploaded by

mk.sapabap10
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
20 views4 pages

SAP OData Invoice List Retrieval

Code

Uploaded by

mk.sapabap10
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 4

METHOD invoicelistset_get_entityset.

*/InvoiceListSet?$filter= CustomerCode eq '10' and (InvoiceDate ge datetime'2016-


10-01T00:00:00' and InvoiceDate le datetime'2016-10-01T00:00:00')
*/ /sap/opu/odata/sap/ZIMAST_SRV/InvoiceListSet?$filter= CustomerCode eq
'0001400010' and InvoiceNo eq '1330000025'

"/sap/opu/odata/sap/ZIMAST_SRV/InvoiceListSet?$filter= CustomerCode eq
'0001400001'&$top=5&$skip=0
"/sap/opu/odata/sap/ZIMAST_SRV/InvoiceListSet?$filter= CustomerCode eq
'0001400001' and InvoiceNo eq '1330000047'
"/sap/opu/odata/sap/ZIMAST_SRV/InvoiceListSet?$filter= CustomerCode eq '1S1079'
and OrderNo eq '1212001704'

** Data declarations.
DATA:lt_customer TYPE RANGE OF vbrk-kunag,
ls_customer LIKE LINE OF lt_customer,
lt_date TYPE RANGE OF vbrk-fkdat,
lt_vbeln TYPE RANGE OF vbrk-vbeln,
ls_date LIKE LINE OF lt_date,
ls_vbeln LIKE LINE OF lt_vbeln,
ls_msg TYPE REF TO /iwbep/if_message_container,
es_entityset LIKE LINE OF et_entityset,
ls_error_flag TYPE c,
i_field_value TYPE string.

TYPES : BEGIN OF ty_vbrk ,


vbeln TYPE vbrk-vbeln,
fkdat TYPE vbrk-fkdat,
erzet TYPE vbrk-erzet,
kunag TYPE vbrk-kunag,
END OF ty_vbrk.

DATA : it_vbrk TYPE STANDARD TABLE OF ty_vbrk,


wa_vbrk TYPE ty_vbrk.

** Instantiate Message Container


CALL METHOD me->/iwbep/if_mgw_conv_srv_runtime~get_message_container
RECEIVING
ro_message_container = ls_msg.

** Read Request Data


READ TABLE it_filter_select_options INTO DATA(wa_filter_select_options) WITH
KEY property = 'CustomerCode'.
IF sy-subrc EQ 0.

READ TABLE wa_filter_select_options-select_options INTO


DATA(wa_select_options) WITH KEY option = 'EQ'.
IF sy-subrc = 0.
MOVE-CORRESPONDING wa_select_options TO ls_customer.
ls_customer-sign = 'I'.
ls_customer-option = 'EQ'.

i_field_value = ls_customer-low.
CALL METHOD zcl_imast_utility=>get_validation_check
EXPORTING
i_validation_name = 'CUSTOMER' " Field Name
i_field_value = i_field_value " Field Value
IMPORTING
e_error = ls_error_flag.

IF ls_error_flag = abap_true.
CALL METHOD ls_msg->add_message
EXPORTING
iv_msg_type = /iwbep/cl_cos_logger=>error " Message Type
iv_msg_id = 'YIMAST_MSG' " Message Class
iv_msg_number = '004'. " Message Number : Enter
Valid Customer Code
ELSE.
APPEND ls_customer TO lt_customer.
ENDIF.
ENDIF.

ELSE.

ls_error_flag = 'X'.
CALL METHOD ls_msg->add_message
EXPORTING
iv_msg_type = /iwbep/cl_cos_logger=>error " Message Type
iv_msg_id = 'YIMAST_MSG' " Message Class
iv_msg_number = '007'. " Message Number : Enter
Customer Code
ENDIF.

*********************************** INOVICE NO
*********************************************

CLEAR:wa_filter_select_options,wa_select_options.
READ TABLE it_filter_select_options INTO wa_filter_select_options WITH KEY
property = 'InvoiceNo'.
IF sy-subrc EQ 0.

READ TABLE wa_filter_select_options-select_options INTO wa_select_options


WITH KEY option = 'EQ'.
IF sy-subrc = 0.
MOVE-CORRESPONDING wa_select_options TO ls_vbeln.
APPEND ls_vbeln TO lt_vbeln.
ELSE.

ls_error_flag = 'X'.
CALL METHOD ls_msg->add_message
EXPORTING
iv_msg_type = /iwbep/cl_cos_logger=>error " Message Type
iv_msg_id = 'YIMAST_MSG' " Message Class
iv_msg_number = '001'. " Message Number : Enter
Invoice
ENDIF.

ENDIF.

**************************************

*********************************** Order No
*********************************************

CLEAR:wa_filter_select_options,wa_select_options.
READ TABLE it_filter_select_options INTO wa_filter_select_options WITH KEY
property = 'OrderNo'.
IF sy-subrc EQ 0.

READ TABLE wa_filter_select_options-select_options INTO wa_select_options


WITH KEY option = 'EQ'.
IF sy-subrc = 0.
MOVE-CORRESPONDING wa_select_options TO ls_vbeln.

CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'


EXPORTING
input = ls_vbeln-low
IMPORTING
output = ls_vbeln-low.

DATA it_vbfa TYPE TABLE OF vbfa.


CALL FUNCTION 'SD_VBFA_SELECT'
EXPORTING
i_vbelv = ls_vbeln-low
TABLES
fvbfa = it_vbfa.

SORT it_vbfa DESCENDING BY vbelv erdat erzet.


DELETE ADJACENT DUPLICATES FROM it_vbfa COMPARING vbelv .

LOOP AT it_vbfa ASSIGNING FIELD-SYMBOL(<wa_vbfa>) WHERE vbtyp_n EQ 'M' AND


vbtyp_v EQ 'C'.
ls_vbeln-sign = 'I'.
ls_vbeln-option = 'EQ'.
ls_vbeln-low = <wa_vbfa>-vbeln.
APPEND ls_vbeln TO lt_vbeln.
ENDLOOP.

ELSE.

ls_error_flag = 'X'.
CALL METHOD ls_msg->add_message
EXPORTING
iv_msg_type = /iwbep/cl_cos_logger=>error " Message Type
iv_msg_id = 'YIMAST_MSG' " Message Class
iv_msg_number = '001'. " Message Number : Enter
Invoice

ENDIF.

ENDIF.

**************************************

** raise error message exception


IF ls_error_flag IS NOT INITIAL.
RAISE EXCEPTION TYPE /iwbep/cx_mgw_busi_exception
EXPORTING
message_container = ls_msg.
ENDIF.

IF is_paging IS NOT INITIAL.


"importing param pnly filled when $top $skip are used

SELECT
vbeln,
fkdat,
erzet,
kunag
FROM vbrk
WHERE kunag IN @lt_customer
ORDER by vbeln DESCENDING
INTO CORRESPONDING FIELDS OF TABLE @it_vbrk
OFFSET @is_paging-skip UP TO @is_paging-top ROWS .
ELSE.

SELECT
vbeln
fkdat
erzet
kunag
FROM vbrk INTO TABLE it_vbrk
WHERE vbeln IN lt_vbeln AND
fkdat IN lt_date AND
kunag IN lt_customer
ORDER by vbeln DESCENDING.

ENDIF.

** get invoice details

LOOP AT it_vbrk INTO wa_vbrk.


es_entityset-vbeln = wa_vbrk-vbeln.
es_entityset-kunag = wa_vbrk-kunag.
es_entityset-fkdat = wa_vbrk-fkdat.

CONVERT DATE wa_vbrk-fkdat


TIME wa_vbrk-erzet
INTO TIME STAMP es_entityset-fkdat
TIME ZONE sy-zonlo.

APPEND es_entityset TO et_entityset.

ENDLOOP.

ENDMETHOD.

You might also like