Field status one-time vendor

FUNCTION z_fieldstatus_cpd_getde.
*”———————————————————————-
*”*”Lokale Schnittstelle:
*” IMPORTING
*” VALUE(I_LIFNR) TYPE LIFNR OPTIONAL
*” VALUE(I_KUNNR) TYPE KUNNR OPTIONAL
*” TABLES
*” T_FIELDS STRUCTURE COBLF
*” EXCEPTIONS
*” DOUBLE_ENTRY
*” PARTNER_NOT_FOUND
*”———————————————————————-
TABLES: t077k, lfa1, kna1.

TYPES: BEGIN OF lty_fields,
field TYPE fieldname,
offset(2),
END OF lty_fields.
DATA: lt_fields TYPE TABLE OF lty_fields WITH HEADER LINE.

DATA: l_ktogr TYPE ktogr.

DATA: fausw(120).

DATA: l_partner LIKE lfa1-lifnr.

REFRESH t_fields.

IF NOT i_lifnr IS INITIAL AND NOT i_kunnr IS INITIAL.
RAISE double_entry.
ENDIF.

IF i_lifnr IS INITIAL AND i_kunnr IS INITIAL.
EXIT.
ENDIF.

IF NOT i_lifnr IS INITIAL.
l_partner = i_lifnr.

CALL FUNCTION ‘CONVERSION_EXIT_ALPHA_INPUT’
EXPORTING
input  = l_partner
IMPORTING
output = l_partner.
.

SELECT SINGLE * FROM lfa1 WHERE lifnr = l_partner.
IF sy-subrc NE 0.
RAISE partner_not_found.
ENDIF.

l_ktogr = lfa1-ktock.
ELSE.
l_partner = i_kunnr.

CALL FUNCTION ‘CONVERSION_EXIT_ALPHA_INPUT’
EXPORTING
input  = l_partner
IMPORTING
output = l_partner.
SELECT SINGLE * FROM kna1 WHERE kunnr = l_partner.
IF sy-subrc NE 0.
RAISE partner_not_found.
ENDIF.
l_ktogr = kna1-ktocd.
ENDIF.
SELECT SINGLE * FROM t077k
WHERE ktokk = l_ktogr.

fausw(40) = t077k-fausa.
fausw+40(40) = t077k-faus1.
fausw+80(40) = t077k-faus2.

PERFORM fill_fields TABLES lt_fields.

DATA: l_faus(1).

LOOP AT lt_fields.

t_fields-fdnam = lt_fields-field.

IF l_ktogr IS INITIAL.
t_fields-required = 0.
t_fields-input = 1.

ELSE.

l_faus = fausw+lt_fields-offset(1).

CASE l_faus.
WHEN ‘+’.
t_fields-required = 1.
t_fields-input = 1.

WHEN ‘.’.
t_fields-required = 0.
t_fields-input = 1.

WHEN ‘*’.
t_fields-required = 0.
t_fields-input = 0.
WHEN ‘-‘.
t_fields-required = 0.
t_fields-input = 0.
ENDCASE.
ENDIF.
APPEND t_fields.
ENDLOOP.
ENDFUNCTION.
*———————————————————————*
* FORM fill_fields *
*———————————————————————*
* …….. *
*———————————————————————*
* –> LT_FIELDS *
*———————————————————————*
FORM fill_fields TABLES lt_fields.
TYPES: BEGIN OF llty_fields,
field TYPE fieldname,
offset(2),
END OF llty_fields.
DATA: llt_fields TYPE TABLE OF llty_fields WITH HEADER LINE.

llt_fields-field = ‘BSEC-ANRED’.
llt_fields-offset = 2.
APPEND llt_fields.

llt_fields-field = ‘BSEC-SPRAS’.
llt_fields-offset = 14.
APPEND llt_fields.

llt_fields-field = ‘BSEC-NAME1’.
llt_fields-offset = 1.
APPEND llt_fields.

llt_fields-field = ‘BSEC-NAME2’.
llt_fields-offset = 4.
APPEND llt_fields.

llt_fields-field = ‘BSEC-NAME3’.
llt_fields-offset = 5.
APPEND llt_fields.

llt_fields-field = ‘BSEC-NAME4’.
llt_fields-offset = 5.
APPEND llt_fields.

llt_fields-field = ‘BSEC-STRAS’.
llt_fields-offset = 7.
APPEND llt_fields.

llt_fields-field = ‘BSEC-PFACH’.
llt_fields-offset = 15.
APPEND llt_fields.
llt_fields-field = ‘BSEC-PSTL2’.
llt_fields-offset = 16.
APPEND llt_fields.

llt_fields-field = ‘BSEC-ORT01’.
llt_fields-offset = 6.
APPEND llt_fields.

llt_fields-field = ‘BSEC-PSTLZ’.
llt_fields-offset = 6.
APPEND llt_fields.

llt_fields-field = ‘BSEC-LAND1’.
llt_fields-offset = 31.
APPEND llt_fields.

llt_fields-field = ‘BSEC-REGIO’.
llt_fields-offset = 9.
APPEND llt_fields.

llt_fields-field = ‘BSEC-BANKL’.
llt_fields-offset = 30.
APPEND llt_fields.

llt_fields-field = ‘BSEC-BANKS’.
llt_fields-offset = 30.
APPEND llt_fields.
llt_fields-field = ‘BSEC-BANKN’.
llt_fields-offset = 30.
APPEND llt_fields.

llt_fields-field = ‘BSEC-BKONT’.
llt_fields-offset = 30.
APPEND llt_fields.

llt_fields-field = ‘BSEC-BKREF’.
llt_fields-offset = 30.
APPEND llt_fields.

llt_fields-field = ‘BSEC-DTAWS’.
llt_fields-offset = 34.
APPEND llt_fields.

llt_fields-field = ‘BSEC-STCEG’.
llt_fields-offset = 24.
APPEND llt_fields.

llt_fields-field = ‘BSEC-DTAMS’.
llt_fields-offset = 34.
APPEND llt_fields.

llt_fields-field = ‘BSEC-STCD1’.
llt_fields-offset = 19.
APPEND llt_fields.

llt_fields-field = ‘BSEC-FITYP’.
llt_fields-offset = 61.
APPEND llt_fields.

llt_fields-field = ‘BSEC-STCD2’.
llt_fields-offset = 41.
APPEND llt_fields.

llt_fields-field = ‘BSEC-STCDT’.
llt_fields-offset = 61.
APPEND llt_fields.

llt_fields-field = ‘BSEC-STCD3’.
llt_fields-offset = 63.
APPEND llt_fields.

llt_fields-field = ‘BSEC-STKZN’.
llt_fields-offset = 43.
APPEND llt_fields.
llt_fields-field = ‘BSEC-STCD4’.
llt_fields-offset = 64.
APPEND llt_fields.

llt_fields-field = ‘BSEC-STKZA’.
llt_fields-offset = 20.
APPEND llt_fields.

llt_fields-field = ‘BSEC-J_1KFTBUS’.
llt_fields-offset = 55.
APPEND llt_fields.

llt_fields-field = ‘BSEC-STKZU’.
llt_fields-offset = 42.
APPEND llt_fields.

llt_fields-field = ‘BSEC-J_1KFTIND’.
llt_fields-offset = 55.
APPEND llt_fields.

llt_fields-field = ‘BSEC-J_1KFREPRE’.
llt_fields-offset = 55.
APPEND llt_fields.
LOOP AT llt_fields.
llt_fields-offset = llt_fields-offset – 1.
MODIFY llt_fields INDEX sy-tabix.
ENDLOOP.
lt_fields[] = llt_fields[].
ENDFORM.                    “fill_fields

Um unsere Seite fortlaufend für Sie zu verbessern, verwende wir Cookies. weitere Informationen

The cookie settings on this website are set to "allow cookies" to give you the best browsing experience possible. If you continue to use this website without changing your cookie settings or you click "Accept" below then you are consenting to this.

Close