DATA:LV_NUM TYPE NUMC2,
lv_STRING_IN type c length 2,
lv_STRING_out type n length 10,
lv_HTYPE TYPE dd01v-datatype,
lv_CHARG TYPE STRING.
IF SY-TCODE = 'CO01' or SY-TCODE = 'CO40' or SY-TCODE = 'CO41'.
SELECT SINGLE MTART FROM MARA WHERE MATNR = @caufvd-STLBEZ INTO @DATA(LV_MTART).
SELECT SINGLE PIPREFIX FROM ZMMT001 WHERE MATNR = @caufvd-STLBEZ INTO @DATA(LV_PIPREFIX).
SELECT SINGLE SUBSTRING( max( ZZZ_BATCH ),5,2 ) FROM AUFK INNER JOIN afpo on AUFK~aufnr = afpo~aufnr WHERE afpo~MATNR = @caufvd-STLBEZ INTO @DATA(lv_ZZZ_BATCH).
CALL FUNCTION 'NUMERIC_CHECK'
EXPORTING
STRING_IN = lv_ZZZ_BATCH
IMPORTING
STRING_OUT = lv_STRING_out
HTYPE = lv_HTYPE
.
IF lv_HTYPE = 'NUMC'.
** IF CL_ABAP_MATCHER=>MATCHES(
** PATTERN = ‘^(-?[1-9]\d*(.\d*[1-9])?)|(-?0.\d*[1-9])$’
** TEXT = ‘1.01’ ) = ABAP_TRUE.
LV_NUM = lv_ZZZ_BATCH + 1.
caufvd-ZZZ_BATCH = LV_PIPREFIX+0(2) && SY-DATUM+2(2) && LV_NUM .
lv_CHARG = caufvd-ZZZ_BATCH.
CALL FUNCTION 'CALCULATE_HASH_FOR_CHAR'
EXPORTING
ALG = 'SHA2'
DATA = lv_CHARG
-
LENGTH = 0 IMPORTING HASHSTRING = lv_CHARG
-
EXCEPTIONS
-
UNKNOWN_ALG = 1
-
PARAM_ERROR = 2
-
INTERNAL_ERROR = 3
-
OTHERS = 4 . IF SY-SUBRC <> 0.
-
Implement suitable error handling here
ENDIF."截取8位成批次 afpod-CHARG = lv_CHARG+0(8). ENDIF.
*… für den Änderungsvergleich sind nur die Datenbankstrukturen relevant
MOVE-CORRESPONDING caufvd_old TO *caufv.
MOVE-CORRESPONDING caufvd TO caufv.
IF *caufv NE caufv.
cfl = yx.
PERFORM caufvd_put(saplcobh) USING c_index-index caufvd.
-
Checkerich für Auftragskonsistenz mit vergebener Nummer aktualisieren
-
Wegen objnr auch für externe Nummernvergabe
IF caufvd-autyp EQ auftragstyp-inst.
PERFORM vb_check_consistency_caufvd(saplcoih) USING caufvd.
ENDIF. -
Netzplan und temporäre Nummernswitch:
-
ggfs. Switch im VSDI (Projektversion) ebenfalls notwendig IF caufv-autyp EQ auftragstyp-netw AND *caufv-objnr(2) EQ 'TM'. PERFORM switch_caufvd_in_vsdi(saplvsdi) USING caufvd caufvd_old. ENDIF.
ENDIF.
TYPES: BEGIN OF p_afpod_typ,
CHARG TYPE afpo-CHARG,
“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”“”"
"
"
"\SE:(27) Enhancement Exit EHP_CO_ZV_ORDER_POST_03, Enhancement PS_ST_EHP3_SFWS_SC_COZV_THREE, Start, Enhancement ZPP_SET_ZZZ_BATCH, Function Module CO_ZV_SRDER
END OF p_afpod_typ.
DATA: p_afpod TYPE p_afpod_typ.
free MEMORY id ‘ZPP_CO01_SET_CHARG’.
p_afpod-CHARG = lv_CHARG+0(8).
EXPORT p_afpod = p_afpod TO MEMORY ID ‘ZPP_CO01_SET_CHARG’.
-
Auftragsposition nachlesen
CALL FUNCTION ‘CO_BI_AFPO_READ_WITH_KEY’
EXPORTING
aufnr_act = caufvd-aufnr
IMPORTING
afpod_exp = afpod
EXCEPTIONS
not_found = 1
OTHERS = 2.
IF sy-subrc <> 0. -
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
-
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDIF.
TYPES: BEGIN OF P_AFPOD_TYP,
CHARG TYPE AFPO-CHARG,
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""$"$\SE:(4) Function Module CO_BI_AFPO_READ_WITH_KEY, End, Enhancement ZPP_SET_ZZZ_BATCH_02, Typ P_AFPOD_TYP, End S
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""$"$\SE:(4) Function Module CO_BI_AFPO_READ_WITH_KEY, End, Enhancement ZPP_SET_ZZZ_BATCH_02, Typ P_AFPOD_TYP, End S
END OF P_AFPOD_TYP.
DATA: P_AFPOD TYPE P_AFPOD_TYP.
IF SY-TCODE = 'CO01' OR SY-TCODE = 'CO40' OR SY-TCODE = 'CO41' .
IMPORT P_AFPOD = P_AFPOD FROM MEMORY ID 'ZPP_CO01_SET_CHARG'.
IF P_AFPOD-CHARG IS NOT INITIAL.
LOOP AT AFPO_BT ASSIGNING FIELD-SYMBOL(<FS_AFPO_BT>).
<FS_AFPO_BT>-CHARG = P_AFPOD-CHARG.
ENDLOOP.
free MEMORY id 'ZPP_CO01_SET_CHARG'.
ENDIF.
ENDIF.