‎2008 Jun 11 5:06 PM
Hi.
I have freshly started with ABAP programming.Inside an RFC--OUTBOUND_SHIPLIST I need to validate a field called "shipment number" which is TKNUM in R/3 in side table shipment list so that only those shipment number(TKNUM) are displayed for which "material source location" is APL. I think the source location is LGORT in R/3. Please help me out how to do this validation in R/3.
Thanks & Regards,
Reinuka Paul.
‎2008 Jun 11 7:03 PM
‎2008 Jul 07 6:58 PM
Hi
i have a webusserid which has been provided DAGs * and APL for werks=0366 by the security. i need to do coding so that If one DAG has * and the other has APL, the APL value is considered instead of *.so i have done the below given coding.but its not working please suggest me where i need to make changes.i need those shipments should come automatically when i login with this webuser which has been provided DAGs =APL in R/3.
FORM rfc_get_outbound_shiplist
TABLES
shipment_list STRUCTURE yweb_shipment_list
USING
value(webuser) TYPE sy-uname
value(company_code) LIKE t001-bukrs
value(werks) TYPE werks_d
value(vdatu_from) LIKE likp-wadat
value(vdatu_to) LIKE likp-wadat
value(kunnr) LIKE kna1-kunnr
value(matnr) LIKE mara-matnr
value(vbeln_vl) LIKE vttk-tknum
CHANGING
value(return_msg) LIKE yweb_s_message.
internal tables:
Shipment List Table
DATA:
BEGIN OF i_shipment_list OCCURS 0,
tknum_vttk LIKE yweb_del_view-tknum_vttk, "Shipment #
vbeln_likp LIKE yweb_del_view-vbeln_likp, " Deliv #
lgort LIKE yweb_del_view-lgort, storage location
END OF i_shipment_list.
DATA : ltb_values LIKE usvalues occurs 0 with header line .
TYPES: BEGIN OF ty_lgort,
lgort TYPE t001l-lgort,
END OF ty_lgort.
DATA: tb_lgort TYPE STANDARD TABLE OF ty_lgort,
wa_lgort TYPE ty_lgort.
SELECT * FROM yweb_del_view INTO
CORRESPONDING FIELDS OF TABLE i_shipment_list
WHERE (i_cond_tab) . "i_cond_tab is an internal conditional table.
IF sy-subrc = 0.
CALL FUNCTION 'SUSR_USER_AUTH_FOR_OBJ_GET'
EXPORTING
NEW_BUFFERING = 3
MANDANT = SY-MANDT
user_name = webuser
sel_object = 'M_MSEG_LGO'
TABLES
values = ltb_values
EXCEPTIONS
user_name_not_exist = 1
not_authorized = 2
internal_error = 3
OTHERS = 4
.
IF sy-subrc = 0.
User has authorization in DAGs. Do the authority check.
LOOP at ltb_values where
OBJCT = 'M_MSEG_LGO' and
FIELD = 'WERKS'.
AUTHORITY-CHECK OBJECT 'M_MSEG_LGO'
ID 'ACTVT' FIELD '03'
ID 'WERKS' FIELD WERKS
ID 'LGORT' FIELD i_shipment_list-lgort.
IF sy-subrc <> 0.
DELETE i_shipment_list INDEX sy-tabix.
ENDIF.
ENDLOOP.
LOOP AT ltb_values WHERE
objct = 'M_MSEG_LGO' AND
field = 'LGORT'.
IF ltb_values-von = '*'.
CONTINUE.
ELSE.
wa_lgort-lgort = ltb_values-von.
APPEND wa_lgort TO tb_lgort.
ENDIF.
ENDLOOP.
ENDIF.
TYPES: ty_delivery TYPE yweb_shipment_list.
TYPES: BEGIN OF ty_vbeln,
vbeln TYPE likp-vbeln,
lgort TYPE t001l-lgort,
tknum type vttk-tknum,
END OF ty_vbeln.
DATA : tb_delivery_vbeln TYPE STANDARD TABLE OF ty_delivery .
DATA: tb_vbeln TYPE STANDARD TABLE OF ty_vbeln,
wa_vbeln TYPE ty_vbeln.
IF tb_delivery_vbeln[] IS NOT INITIAL.
SELECT vbeln lgort
FROM vepo
INTO TABLE tb_vbeln
FOR ALL ENTRIES IN tb_delivery_vbeln
WHERE vbeln = tb_delivery_vbeln-vbeln_likp.
SELECT tknum FROM vtts INTO TABLE tb_vbeln FOR ALL ENTRIES IN
tb_delivery_vbeln WHERE tknum = tb_delivery_vbeln-tknum .
SORT tb_vbeln BY lgort.
DELETE ADJACENT DUPLICATES FROM tb_vbeln.
IF tb_lgort[] IS NOT INITIAL.
LOOP AT tb_vbeln INTO wa_vbeln where lgort = 'APL'.
l_tabix = sy-tabix.
READ TABLE tb_lgort INTO wa_lgort WITH KEY lgort =
wa_vbeln-lgort.
IF sy-subrc <> 0.
DELETE tb_vbeln INDEX l_tabix.
ENDIF.
ENDLOOP.
ENDIF.
ENDIF.
Thanks & Regards,
Reinuka.
Edited by: Reinuka Paul on Jul 7, 2008 8:03 PM
‎2008 Jun 11 8:04 PM
You could go to the screens where these fields are used, use the F1 Function Key to get the Technical Information.