+ All Categories
Home > Documents > z Codingmask En

z Codingmask En

Date post: 24-Feb-2018
Category:
Upload: phanak74
View: 219 times
Download: 0 times
Share this document with a friend

of 26

Transcript
  • 7/25/2019 z Codingmask En

    1/26

    REPORT Z_CODINGMASK_EN.

    * Deklaration TabellenTABLES: proj, prps, prpss, projs,

    vsproj_cn, vsprps_cn, tcjed, tcj01, tcjet.

    * Definition VariablenDATA: itab_tcjed TYPE tcjed OCCURS 0 WITH HEADER LINE.DATA: val(90).DATA: itab_tcjet TYPE tcjet OCCURS 0 WITH HEADER LINE.DATA: var(6).DATA: itab_proj TYPE proj OCCURS 0 WITH HEADER LINE,

    itab_prps TYPE prps OCCURS 0 WITH HEADER LINE, itab_projs TYPE projs OCCURS 0 WITH HEADER LINE, itab_prpss TYPE prpss OCCURS 0 WITH HEADER LINE, itab_vsproj_cn TYPE vsproj_cn OCCURS 0 WITH HEADER LINE, itab_vsprps_cn TYPE vsprps_cn OCCURS 0 WITH HEADER LINE.DATA: variable1 TYPE i, variable2 TYPE i, variable3 TYPE i, variable4 TYPE i, variable5 TYPE i, variable6 TYPE i, variable7 TYPE i.DATA: variable_m1(7), variable_m2(7), variable_m3(7), variable_m4(7), variable_m5(7), variable_m6(7), variable_m7(7), variable_m8(7).DATA: itabelle_proj TYPE proj OCCURS 0 WITH HEADER LINE, itabelle_prps TYPE prps OCCURS 0 WITH HEADER LINE, itabelle_projs TYPE projs OCCURS 0 WITH HEADER LINE,

    itabelle_prpss TYPE prpss OCCURS 0 WITH HEADER LINE, itabelle_vsproj_cn TYPE vsproj_cn OCCURS 0 WITH HEADER LINE, itabelle_vsprps_cn TYPE vsprps_cn OCCURS 0 WITH HEADER LINE.DATA: i_proj TYPE proj OCCURS 0 WITH HEADER LINE.DATA: counter TYPE i.DATA: read(7) TYPE c, lv_rc LIKE sy-subrc, projekt_neu(24) TYPE c.DATA: v1(1) TYPE c, v2(2) TYPE c, v3(3) TYPE c, v4(4) TYPE c,v5(5) TYPE c.DATA: interne_tabelle TYPE tcjed OCCURS 0 WITH HEADER LINE.DATA: variable_edkz(9) TYPE c. "changed from 8 to 9 to avoid an error

    DATA: laenge TYPE c.* Variablendefinition fr sy-subrcDATA: var1_sy_subrc(2) TYPE c, var2_sy_subrc(2) TYPE c,var3_sy_subrc(2) TYPE c, var4_sy_subrc(2) TYPE c,var5_sy_subrc(2) TYPE c, var6_sy_subrc(2) TYPE c.DATA: laenge_proid TYPE c.DATA: itab_tcjed_s TYPE tcjed OCCURS 0 WITH HEADER LINE.DATA: variable_proid TYPE c.* Variable mit best.Lnge(darein soll das PS_Object geschrieben werden)DATA: variable_projekt1(1) TYPE c.DATA: variable_projekt2(2) TYPE c.DATA: variable_projekt3(3) TYPE c.DATA: variable_projekt4(4) TYPE c.

    DATA: variable_projekt5(5) TYPE c.DATA: itab_tcjed_pruef TYPE tcjed OCCURS 0 WITH HEADER LINE.DATA: var1__sy_subrc(2) TYPE c, var2__sy_subrc(2) TYPE c,

  • 7/25/2019 z Codingmask En

    2/26

    var3__sy_subrc(2) TYPE c, var4__sy_subrc(2) TYPE c,var5__sy_subrc(2) TYPE c, var6__sy_subrc(2) TYPE c.

    * Eingabefeld fr mask_idSELECTION-SCREEN BEGIN OF LINE.SELECTION-SCREEN COMMENT 1(20) ty1. " for field mask_id.SELECTION-SCREEN POSITION 25.

    PARAMETERS: mask_id LIKE tcjed-proid.SELECTION-SCREEN END OF LINE.

    * Eingabefeld fr PS_ObjectSELECTION-SCREEN BEGIN OF LINE.SELECTION-SCREEN COMMENT 1(20) tx1. " for field projekt.SELECTION-SCREEN POSITION 25.PARAMETERS: projekt(24) TYPE c.SELECTION-SCREEN END OF LINE.

    * InitializationINITIALIZATION.

    MOVE 'PS_Object' TO tx1. MOVE 'mask_id' TO ty1.

    * Titel festgelegt SET TITLEBAR 'T01'.

    ********** START-OF-SELECTION **********START-OF-SELECTION. CLEAR counter.* Abfrage des Eingabefeldes mask_id IF NOT mask_id IS INITIAL. ADD 1 TO counter. read = 'mask_id'.

    ENDIF.* Abfrage des Eingabefeldes PS_Object IF NOT projekt IS INITIAL. ADD 1 TO counter. read = 'Projekt'. ENDIF.* Abfrage Zhler IF counter > '1'. MESSAGE ID 'KC' TYPE 'S' NUMBER '008'. ELSE. CASE read.

    ****************** 1.Fall: mask_id wird eingegeben ********************* WHEN 'mask_id'.

    * Selektion Editionsmaske (tcjed) FREE itab_tcjed. SELECT SINGLE * FROM tcjed INTO CORRESPONDING FIELDS OF itab_tcjed WHERE proid = mask_id. IF sy-subrc NE 0. MESSAGE ID '00' TYPE 'S' NUMBER '002'. LEAVE LIST-PROCESSING. ELSE. ENDIF. WRITE:/ '@35@ tips and tricks' COLOR COL_POSITIVE HOTSPOT.

    SKIP.SKIP.

    * berprfung, ob Sonderzeichen der Editionsmasken in der tcj01

  • 7/25/2019 z Codingmask En

    3/26

    * vorhanden sindSELECT SINGLE * FROM tcjed INTO CORRESPONDING FIELDS OF itab_tcjed_pruef WHERE proid = mask_id. TRANSLATE itab_tcjed_pruef-posid USING 'X '. TRANSLATE itab_tcjed_pruef-posid USING '0 '. SELECT SINGLE * FROM tcj01. CONCATENATE tcj01-edkz1 tcj01-edkz2 tcj01-edkz3 tcj01-edkz4

    tcj01-edkz5 tcj01-edkz6 tcj01-edkz7 tcj01-edkz8 INTO variable_edkz. IF NOT itab_tcjed_pruef-posid CO variable_edkz AND NOT itab_tcjed_pruef-posid IS INITIAL. WRITE:/'@3U@ Coding mask includes special characters' COLOR COL_NEGATIVE NO-GAP, 'which are not in table tcj01.' COLOR COL_NEGATIVE. ELSE. WRITE:/'Special characters of the coding mask are available in', 'table tcj01.'. ENDIF.

    * Selektion Editionsmaske(tcjet) und Ausgabe SELECT SINGLE * FROM tcjet INTO CORRESPONDING FIELDS OF itab_tcjet WHERE proid = itab_tcjed-proid. PERFORM listengestaltung_editionsmaske.

    * Selektion Sonderzeichen und Ausgabe SELECT * FROM tcj01. PERFORM listengestaltung_sonderzeichen. ENDSELECT. WRITE:/ 'for special characters' COLOR COL_POSITIVE HOTSPOT.

    * Variable wird gefllt CONCATENATE mask_id '%' INTO var.

    * Selektion (mask_id als Anfang) SELECT * FROM proj INTO TABLE itab_proj WHERE pspid LIKE var. SELECT * FROM prps INTO TABLE itab_prps WHERE posid LIKE var. SELECT * FROM projs INTO TABLE itab_projs WHERE pspid LIKE var. SELECT * FROM prpss INTO TABLE itab_prpss WHERE posid LIKE var.SELECT * FROM vsproj_cn INTO TABLE itab_vsproj_cn WHERE pspid LIKE var.SELECT * FROM vsprps_cn INTO TABLE itab_vsprps_cn WHERE posid LIKE var.

    * Gestaltung der Liste SKIP. SKIP. SKIP. SKIP.

    * Variablen werden gefllt (Zeilenanzahl der internen Tabellen) DESCRIBE TABLE itab_proj. variable1 = sy-tfill. DESCRIBE TABLE itab_prps. variable2 = sy-tfill. DESCRIBE TABLE itab_projs. variable3 = sy-tfill. DESCRIBE TABLE itab_prpss. variable4 = sy-tfill. DESCRIBE TABLE itab_vsproj_cn.

    variable5 = sy-tfill. DESCRIBE TABLE itab_vsprps_cn. variable6 = sy-tfill.

  • 7/25/2019 z Codingmask En

    4/26

    * Zeilenanzahl(insgesamt) wird errechnet variable7 = variable1 + variable2 + variable3 + variable4 + variable5 + variable6.* Zeilenanzahl(insgesamt) wird ausgegeben WRITE:/ variable7 COLOR COL_GROUP, 'entries for entered mask_id existing' COLOR COL_HEADING.

    * Gestaltung der Liste ULINE AT /(55). SKIP. SKIP.

    * Concatenate hngt die Felder mask_id, Sonderzeichen und '%' aneinander* > in Variablen schieben CONCATENATE mask_id tcj01-edkz1 '%' INTO variable_m1. CONCATENATE mask_id tcj01-edkz2 '%' INTO variable_m2. CONCATENATE mask_id tcj01-edkz3 '%' INTO variable_m3. CONCATENATE mask_id tcj01-edkz4 '%' INTO variable_m4.

    CONCATENATE mask_id tcj01-edkz5 '%' INTO variable_m5. CONCATENATE mask_id tcj01-edkz6 '%' INTO variable_m6. CONCATENATE mask_id tcj01-edkz7 '%' INTO variable_m7. CONCATENATE mask_id tcj01-edkz8 '%' INTO variable_m8.

    * wenn kein Sonderzeichen angegeben ist, wird Variable gelscht PERFORM variable_loeschen.

    * Selektion der pspid's und posid's, die Sonderzeichen enthalten PERFORM pspid_posid_mit_sz.

    * Ausgabe der pspid's und posid's, die Sonderzeichen enthalten PERFORM pspid_posid_mit_sz_ausgabe.

    * Hotspots festlegen / Absprung festlegen PERFORM hotspots_absprung.

    SKIP.SKIP. WRITE:/ '@35@ tips and tricks' COLOR COL_POSITIVE HOTSPOT.

    ****************** 2.Fall: PS_Object wird eingegeben ******************* WHEN 'project'.

    WRITE:/ '@35@ tips und tricks' COLOR COL_POSITIVE HOTSPOT. SKIP.SKIP.

    WRITE:/'information for PS_Object' COLOR COL_HEADING, projekt COLOR COL_GROUP. ULINE. SKIP.

    ***** Fr die Tabelle PROJ ***** FREE i_proj. SELECT SINGLE * FROM proj INTO CORRESPONDING FIELDS OF i_proj WHERE pspid = projekt. IF sy-subrc NE 0. var1_sy_subrc = sy-subrc. ELSE.

    * Form selektiert Sonderzeichen PERFORM pruefung_und_sel_sz.

  • 7/25/2019 z Codingmask En

    5/26

    * Prfung: Sind Sonderzeichen enthalten ? IF i_proj-pspid CA variable_edkz(laenge). WRITE:/ 'table PROJ' COLOR COL_KEY.* Stelle, an der das erste Sonderzeichen steht und Selektion* (Editionsmaske vorhanden oder nicht) PERFORM sz-stelle_und_mask_vorh.* Prfung: keine Sonderzeichen vorhanden

    ELSE. WRITE:/ 'table PROJ' COLOR COL_KEY.* PS_Object nehmen, eins bis fnf Stellen lang, anschlieend von der* tcjed selektieren > Editionsmaske vorhanden oder nicht! laenge_proid = strlen( tcjed-proid ). variable_projekt1 = projekt. SELECT SINGLE * FROM tcjed INTO CORRESPONDING FIELDS OF itab_tcjed_s WHERE proid = variable_projekt1. IF NOT itab_tcjed_s IS INITIAL. ELSE. variable_projekt2 = projekt. SELECT SINGLE * FROM tcjed INTO CORRESPONDING FIELDS OF itab_tcjed_s

    WHERE proid = variable_projekt2. IF NOT itab_tcjed_s IS INITIAL. ELSE. variable_projekt3 = projekt. SELECT SINGLE * FROM tcjed INTO CORRESPONDING FIELDS OF itab_tcjed_s WHERE proid = variable_projekt3. IF NOT itab_tcjed_s IS INITIAL. ELSE. variable_projekt4 = projekt. SELECT SINGLE * FROM tcjed INTO CORRESPONDING FIELDS OF itab_tcjed_s WHERE proid = variable_projekt4. IF NOT itab_tcjed_s IS INITIAL. ELSE.

    variable_projekt5 = projekt. SELECT SINGLE * FROM tcjed INTO CORRESPONDING FIELDS OF itab_tcjed_s WHERE proid = variable_projekt5. IF NOT itab_tcjed_s IS INITIAL. ELSE. WRITE:/'there is no coding mask existing.'. ENDIF. ENDIF. ENDIF. ENDIF. ENDIF.

    * Ermittlung, ob der String (Projekt) gemss seinem Editionsschlssel* editiert werden kann. EDIT nach Projekt_Neu. Unterscheiden sich* Projekt und Projekt_Neu (und es gab keinen Error), dann ist die* Editierung ohne Fehler mglich CALL FUNCTION 'CJPN_PROJEKTNUMMER_EDIT' EXPORTING input = projekt IMPORTING output = projekt_neu EXCEPTIONS error_messages = 99. IF NOT ( projekt NE projekt_neu AND sy-subrc IS INITIAL ).

    WRITE:/ '@3U@ inconsistency between coding mask and db-table entry' NO-GAP COLOR COL_NEGATIVE, 'existing' COLOR COL_NEGATIVE.

  • 7/25/2019 z Codingmask En

    6/26

    WRITE:/ projekt. ELSE. WRITE:/'no inconsistency found.'. WRITE:/ projekt. ENDIF. ENDIF. ENDIF.

    * Gestaltung Liste SKIP.

    ***** Fr die Tabelle PRPS ***** DATA: i_prps TYPE prps OCCURS 0 WITH HEADER LINE. FREE i_prps. SELECT SINGLE * FROM prps INTO CORRESPONDING FIELDS OF i_prps WHERE posid = projekt. IF sy-subrc NE 0. var2_sy_subrc = sy-subrc. ELSE.

    PERFORM pruefung_und_sel_sz. IF i_prps-posid CA variable_edkz(laenge). WRITE:/ 'table PRPS' COLOR COL_KEY. PERFORM sz-stelle_und_mask_vorh. ELSE. WRITE:/ 'table PRPS' COLOR COL_KEY.* PS_Object nehmen, eins bis fnf Stellen lang, anschlieend von der* tcjed selektieren > Editionsmaske vorhanden oder nicht !!!* und Ermittlung, ob Projekt editiert werden kann PERFORM editionsmaske_vorhanden. ENDIF. ENDIF.

    * Gestaltung Liste SKIP.

    ***** Fr die Tabelle PROJS ***** DATA: i_projs TYPE projs OCCURS 0 WITH HEADER LINE. FREE i_projs. SELECT SINGLE * FROM projs INTO CORRESPONDING FIELDS OF i_projs WHERE pspid = projekt. IF sy-subrc NE 0. var3_sy_subrc = sy-subrc. ELSE. PERFORM pruefung_und_sel_sz. IF i_projs-pspid CA variable_edkz(laenge). WRITE:/ 'table PROJS' COLOR COL_KEY. PERFORM sz-stelle_und_mask_vorh. ELSE. WRITE:/ 'table PROJS' COLOR COL_KEY. PERFORM editionsmaske_vorhanden. ENDIF. ENDIF.

    * Gestaltung Liste SKIP.

    ***** Fr die Tabelle PRPSS *****

    DATA: i_prpss TYPE prpss OCCURS 0 WITH HEADER LINE. FREE i_prpss. SELECT SINGLE * FROM prpss INTO CORRESPONDING FIELDS OF i_prpss

  • 7/25/2019 z Codingmask En

    7/26

    WHERE posid = projekt. IF sy-subrc NE 0. var4_sy_subrc = sy-subrc. ELSE. PERFORM pruefung_und_sel_sz. IF i_prpss-posid CA variable_edkz(laenge). WRITE:/ 'table PRPSS' COLOR COL_KEY.

    PERFORM sz-stelle_und_mask_vorh. ELSE. WRITE:/ 'table PRPSS' COLOR COL_KEY. PERFORM editionsmaske_vorhanden. ENDIF. ENDIF.

    * Gestaltung Liste SKIP.

    ***** Fr die Tabelle VSPROJ_CN ***** DATA: i_vsproj_cn TYPE vsproj_cn OCCURS 0 WITH HEADER LINE.

    FREE i_vsproj_cn. SELECT SINGLE * FROM vsproj_cn INTO CORRESPONDING FIELDS OF i_vsproj_cn WHERE pspid = projekt. IF sy-subrc NE 0. var5_sy_subrc = sy-subrc. ELSE. PERFORM pruefung_und_sel_sz. IF i_vsproj_cn-pspid CA variable_edkz(laenge). WRITE:/ 'table VSPROJ_CN' COLOR COL_KEY. PERFORM sz-stelle_und_mask_vorh. ELSE. WRITE:/ 'table VSPROJ_CN' COLOR COL_KEY.

    PERFORM editionsmaske_vorhanden. ENDIF. ENDIF.

    * Gestaltung Liste SKIP.

    ***** Fr die Tabelle VSPRPS_CN ***** DATA: i_vsprps_cn TYPE vsprps_cn OCCURS 0 WITH HEADER LINE. FREE i_vsprps_cn. SELECT SINGLE * FROM vsprps_cn INTO CORRESPONDING FIELDS OF i_vsprps_cn WHERE posid = projekt. IF sy-subrc NE 0. var6_sy_subrc = sy-subrc. ELSE. PERFORM pruefung_und_sel_sz. IF i_vsprps_cn-posid CA variable_edkz(laenge). WRITE:/ 'table VSPRPS_CN' COLOR COL_KEY. PERFORM sz-stelle_und_mask_vorh. ELSE. WRITE:/ 'table VSPRPS_CN' COLOR COL_KEY. PERFORM editionsmaske_vorhanden. ENDIF. ENDIF.

    * Aufruf Form Editionsmaske und Ausgabe SELECT SINGLE * FROM tcjed INTO CORRESPONDING FIELDS OF itab_tcjed

  • 7/25/2019 z Codingmask En

    8/26

    WHERE proid = v1 OR proid = v2 OR proid = v3 OR proid = v4 OR proid = v5. SELECT SINGLE * FROM tcjet INTO CORRESPONDING FIELDS OF itab_tcjet WHERE proid = itab_tcjed-proid.

    * Prfung: Editionsmaske vorhanden ? IF NOT itab_tcjed IS INITIAL AND NOT itab_tcjet IS INITIAL. ULINE AT /(57). ELSE. SKIP. ULINE AT /(57). ENDIF.

    * Aufruf Form Sonderzeichen und Ausgabe SELECT * FROM tcj01. PERFORM listengestaltung_sonderzeichen. ENDSELECT.

    WRITE:/ 'for special characters' COLOR COL_POSITIVE HOTSPOT.************************** 2.Fall mit unedit **************************** projekt nehmen, eins bis fnf Stellen lang, anschlieend von der* tcjed selektieren > Editionsmaske vorhanden oder nicht ! laenge_proid = strlen( tcjed-proid ). variable_projekt1 = projekt. SELECT SINGLE * FROM tcjed INTO CORRESPONDING FIELDS OF itab_tcjed_s WHERE proid = variable_projekt1. IF NOT itab_tcjed_s IS INITIAL. PERFORM editionsmaske_ausgabe. ELSE. variable_projekt2 = projekt.

    SELECT SINGLE * FROM tcjed INTO CORRESPONDING FIELDS OF itab_tcjed_s WHERE proid = variable_projekt2. IF NOT itab_tcjed_s IS INITIAL. PERFORM editionsmaske_ausgabe. ELSE. variable_projekt3 = projekt. SELECT SINGLE * FROM tcjed INTO CORRESPONDING FIELDS OF itab_tcjed_s WHERE proid = variable_projekt3. IF NOT itab_tcjed_s IS INITIAL. PERFORM editionsmaske_ausgabe. ELSE. variable_projekt4 = projekt. SELECT SINGLE * FROM tcjed INTO CORRESPONDING FIELDS OF itab_tcjed_s WHERE proid = variable_projekt4. IF NOT itab_tcjed_s IS INITIAL. PERFORM editionsmaske_ausgabe. ELSE. variable_projekt5 = projekt. SELECT SINGLE * FROM tcjed INTO CORRESPONDING FIELDS OF itab_tcjed_s WHERE proid = variable_projekt5. IF NOT itab_tcjed_s IS INITIAL. PERFORM editionsmaske_ausgabe. ELSE. WRITE:/'there is no coding mask existing.'. ENDIF.

    ENDIF. ENDIF. ENDIF.

  • 7/25/2019 z Codingmask En

    9/26

    ENDIF.* berprfung, ob Sonderzeichen der Editionsmasken in der tcj01* vorhanden sind SELECT SINGLE * FROM tcjed INTO CORRESPONDING FIELDS OF itab_tcjed_pruef WHERE proid = mask_id. TRANSLATE itab_tcjed_pruef-posid USING 'X '. TRANSLATE itab_tcjed_pruef-posid USING '0 '.

    SELECT SINGLE * FROM tcj01. CONCATENATE tcj01-edkz1 tcj01-edkz2 tcj01-edkz3 tcj01-edkz4tcj01-edkz5 tcj01-edkz6 tcj01-edkz7 tcj01-edkz8 INTO variable_edkz. IF NOT itab_tcjed_pruef-posid CO variable_edkz AND NOT itab_tcjed_pruef-posid IS INITIAL. WRITE:/'@3U@ Coding mask includes special characters' COLOR COL_NEGATIVE NO-GAP, 'which are not available in table tcj01.' COLOR COL_NEGATIVE. ELSE. WRITE:/'Special characters of the coding mask area available in', 'table tcj01.'.

    ENDIF.* UNEDIT, um eventuell vom User eingegebene Sonderzeichen zu eliminieren CALL FUNCTION 'CJPN_PROJEKTNUMMER_UNEDIT' EXPORTING input = projekt IMPORTING output = projekt rcode = lv_rc. IF NOT lv_rc IS INITIAL. MESSAGE i001(cj) WITH 'aha' space space space. ENDIF.

    * Selektion mit Abfrage sy-subrc SELECT SINGLE * FROM proj INTO CORRESPONDING FIELDS OF i_proj WHERE pspid = projekt. IF sy-subrc NE 0. var1__sy_subrc = sy-subrc. ENDIF. SELECT SINGLE * FROM prps INTO CORRESPONDING FIELDS OF i_prps WHERE posid = projekt. IF sy-subrc NE 0. var2__sy_subrc = sy-subrc. ENDIF. SELECT SINGLE * FROM projs INTO CORRESPONDING FIELDS OF i_projs WHERE pspid = projekt. IF sy-subrc NE 0. var3__sy_subrc = sy-subrc. ENDIF. SELECT SINGLE * FROM prpss INTO CORRESPONDING FIELDS OF i_prpss WHERE posid = projekt. IF sy-subrc NE 0. var4__sy_subrc = sy-subrc. ENDIF. SELECT SINGLE * FROM vsproj_cn INTO CORRESPONDING FIELDS OF i_vsproj_cn WHERE pspid = projekt. IF sy-subrc NE 0.

    var5__sy_subrc = sy-subrc. ENDIF. SELECT SINGLE * FROM vsprps_cn INTO CORRESPONDING FIELDS OF

  • 7/25/2019 z Codingmask En

    10/26

    i_vsprps_cn WHERE posid = projekt. IF sy-subrc NE 0. var6__sy_subrc = sy-subrc. ENDIF.

    * Ausgabe der internen Tabellen

    LOOP AT i_proj. WRITE:/ i_proj-pspnr, ' ', i_proj-pspid, ' ', i_proj-post1. ENDLOOP. LOOP AT i_prps. WRITE:/ i_prps-pspnr, ' ', i_prps-posid, ' ', i_prps-post1. ENDLOOP. LOOP AT i_projs. WRITE:/ i_projs-pspnr, ' ', i_projs-pspid, ' ', i_projs-post1. ENDLOOP. LOOP AT i_prpss. WRITE:/ i_prpss-pspnr, ' ', i_prpss-posid, ' ', i_prpss-post1. ENDLOOP.

    LOOP AT i_vsproj_cn. WRITE:/ i_vsproj_cn-pspnr, ' ', i_vsproj_cn-pspid, ' ', i_vsproj_cn-post1. ENDLOOP. LOOP AT i_vsprps_cn. WRITE:/ i_vsprps_cn-pspnr, ' ', i_vsprps_cn-posid, ' ', i_vsprps_cn-post1. ENDLOOP.

    SKIP.SKIP. WRITE:/ '@35@ tips and tricks' COLOR COL_POSITIVE HOTSPOT.

    * Wenn Projekt nicht vorhanden > Fehlermeldung

    IF var1_sy_subrc NE 0 AND var2_sy_subrc NE 0 AND var3_sy_subrc NE 0 AND var4_sy_subrc NE 0 AND var5_sy_subrc NE 0 AND var6_sy_subrc NE 0 AND var1__sy_subrc NE 0 AND var2__sy_subrc NE 0 AND var3__sy_subrc NE 0 AND var4__sy_subrc NE 0 AND var5__sy_subrc NE 0 AND var6__sy_subrc NE 0. MESSAGE ID '00' TYPE 'S' NUMBER '002'. LEAVE LIST-PROCESSING. ELSE. ENDIF.

    ENDCASE. ENDIF.

    * Absprung und Absprungziele festgelegtAT LINE-SELECTION. GET CURSOR VALUE val. CASE val. WHEN 'for coding mask'. CALL TRANSACTION 'OPSJ'. SET SCREEN 0. WHEN 'for special characters'. CALL TRANSACTION 'OPSK'. SET SCREEN 0. WHEN '==> table PROJ'.

    PERFORM projnr_ausgabe_proj. SET SCREEN 0. WHEN '==> table PRPS'.

  • 7/25/2019 z Codingmask En

    11/26

    PERFORM projnr_ausgabe_prps. SET SCREEN 0. WHEN '==> table PROJS'. PERFORM projnr_ausgabe_projs. SET SCREEN 0. WHEN '==> table PRPSS'. PERFORM projnr_ausgabe_prpss.

    SET SCREEN 0. WHEN '==> table VSPROJ_CN'. PERFORM projnr_ausgabe_vsproj_cn. SET SCREEN 0. WHEN '==> table VSPRPS_CN'. PERFORM projnr_ausgabe_vsprps_cn. SET SCREEN 0.********************* WHEN '@35@ tips and tricks'. PERFORM tipps_und_tricks. SET SCREEN 0.*********************

    ENDCASE.*& **& Form Listengestaltung_Editionsmaske*& ** text* ** > p1 text* < p2 text* *FORM listengestaltung_editionsmaske.

    SKIP.

    ULINE AT /(118). WRITE:/ sy-vline, 'PRID' COLOR COL_HEADING , 9 sy-vline, ' coding mask' COLOR COL_HEADING , 36 sy-vline, 'shorttext' COLOR COL_HEADING , 79 sy-vline, 'lockop' COLOR COL_HEADING, 89 sy-vline, 'lockstd' COLOR COL_HEADING , 100 sy-vline, 'language key' COLOR COL_HEADING , 118 sy-vline. ULINE AT /(118). WRITE:/ sy-vline, itab_tcjed-proid, sy-vline, itab_tcjed-posid,sy-vline, itab_tcjet-ktext, sy-vline, itab_tcjed-neusp, 89 sy-vline, itab_tcjed-neuss, 100 sy-vline, itab_tcjet-sprsl, 118 sy-vline. ULINE AT /(118). WRITE:/ 'for coding mask' COLOR COL_POSITIVE HOTSPOT. SKIP.SKIP.SKIP. ULINE AT /(57).

    ENDFORM. " Listengestaltung_Editionsmaske

    *& **& Form Listengestaltung_Sonderzeichen

    *& ** text* *

  • 7/25/2019 z Codingmask En

    12/26

    * > p1 text* < p2 text* *FORM listengestaltung_sonderzeichen.

    WRITE: / sy-vline, 'special character' COLOR COL_HEADING , 57 sy-vline. ULINE AT /(57).

    WRITE: / sy-vline, 'LP', 5 sy-vline, 'SL', 9 sy-vline, 'SZ',13 sy-vline, 'SZ', 17 sy-vline, 'SZ', 21 sy-vline,'SZ', 25 sy-vline,'SZ', 29 sy-vline, 'SZ', 33 sy-vline, 'SZ', 37 sy-vline, 'SZ', 41sy-vline, 'SZ', 45 sy-vline, 'Edit', 49 sy-vline, 'ANr', 57 sy-vline. ULINE AT /(57). WRITE: / sy-vline, tcj01-argum, sy-vline, tcj01-strkz, sy-vline, tcj01-artkz, sy-vline, tcj01-edkz1, sy-vline, tcj01-edkz2, sy-vline,

    tcj01-edkz3, sy-vline, tcj01-edkz4, sy-vline, tcj01-edkz5, sy-vline, tcj01-edkz6, sy-vline, tcj01-edkz7, sy-vline, tcj01-edkz8, sy-vline, tcj01-edit, sy-vline, tcj01-tmpr, 57 sy-vline. ULINE AT /(57).

    ENDFORM. " Listengestaltung_Sonderzeichen

    *& *

    *& Form Variable_loeschen*& ** text* ** > p1 text* < p2 text* *FORM variable_loeschen.

    IF tcj01-edkz1 IS INITIAL. CLEAR variable_m1. ELSE. ENDIF. IF tcj01-edkz2 IS INITIAL. CLEAR variable_m2. ELSE. ENDIF. IF tcj01-edkz3 IS INITIAL. CLEAR variable_m3. ELSE. ENDIF. IF tcj01-edkz4 IS INITIAL. CLEAR variable_m4. ELSE. ENDIF.

    IF tcj01-edkz5 IS INITIAL. CLEAR variable_m5. ELSE.

  • 7/25/2019 z Codingmask En

    13/26

    ENDIF. IF tcj01-edkz6 IS INITIAL. CLEAR variable_m6. ELSE. ENDIF. IF tcj01-edkz7 IS INITIAL. CLEAR variable_m7.

    ELSE. ENDIF. IF tcj01-edkz8 IS INITIAL. CLEAR variable_m8. ELSE. ENDIF.

    ENDFORM. " Variable_loeschen

    *& **& Form pspid_posid_mit_SZ*& *

    * text* ** > p1 text* < p2 text* *FORM pspid_posid_mit_sz.

    * Selektion der pspid's, die Sonderzeichen enthalten SELECT * FROM proj INTO TABLE itabelle_proj WHERE pspid LIKE variable_m6 OR pspid LIKE variable_m1 OR pspid LIKE variable_m2 OR pspid LIKE variable_m3

    OR pspid LIKE variable_m4 OR pspid LIKE variable_m5 OR pspid LIKE variable_m7 OR pspid LIKE variable_m8.* Selektion der posid's, die Sonderzeichen enthalten SELECT * FROM prps INTO TABLE itabelle_prps WHERE posid LIKE variable_m6 OR posid LIKE variable_m1 OR posid LIKE variable_m2 OR posid LIKE variable_m3 OR posid LIKE variable_m4 OR posid LIKE variable_m5 OR posid LIKE variable_m7 OR posid LIKE variable_m8.* Selektion der pspid's, die Sonderzeichen enthalten SELECT * FROM projs INTO TABLE itabelle_projs WHERE pspid LIKE variable_m6 OR pspid LIKE variable_m1 OR pspid LIKE variable_m2 OR pspid LIKE variable_m3 OR pspid LIKE variable_m4 OR pspid LIKE variable_m5 OR pspid LIKE variable_m7 OR pspid LIKE variable_m8.* Selektion der posid's, die Sonderzeichen enthalten

    SELECT * FROM prpss INTO TABLE itabelle_prpss WHERE posid LIKE variable_m6 OR posid LIKE variable_m1

  • 7/25/2019 z Codingmask En

    14/26

    OR posid LIKE variable_m2 OR posid LIKE variable_m3 OR posid LIKE variable_m4 OR posid LIKE variable_m5 OR posid LIKE variable_m7 OR posid LIKE variable_m8.* Selektion der pspid's, die Sonderzeichen enthalten

    SELECT * FROM vsproj_cn INTO TABLE itabelle_vsproj_cn WHERE pspid LIKE variable_m6 OR pspid LIKE variable_m1 OR pspid LIKE variable_m2 OR pspid LIKE variable_m3 OR pspid LIKE variable_m4 OR pspid LIKE variable_m5 OR pspid LIKE variable_m7 OR pspid LIKE variable_m8.* Selektion der posid's, die Sonderzeichen enthalten SELECT * FROM vsprps_cn INTO TABLE itabelle_vsprps_cn WHERE posid LIKE variable_m6

    OR posid LIKE variable_m1 OR posid LIKE variable_m2 OR posid LIKE variable_m3 OR posid LIKE variable_m4 OR posid LIKE variable_m5 OR posid LIKE variable_m7 OR posid LIKE variable_m8.

    ENDFORM. " pspid_posid_mit_SZ

    *& **& Form pspid_posid_mit_SZ_Ausgabe*& *

    * text* ** > p1 text* < p2 text* *FORM pspid_posid_mit_sz_ausgabe.

    * Ausgabe der pspid's IF NOT itabelle_proj[] IS INITIAL. WRITE:/'@3U@ Inconsistency between coding mask and db-table entry' NO-GAP COLOR COL_NEGATIVE, 'in table PROJ existing' COLOR COL_NEGATIVE. LOOP AT itabelle_proj. WRITE:/ itabelle_proj-pspid USING NO EDIT MASK. ENDLOOP. ELSE. ENDIF.* Ausgabe der posid's IF NOT itabelle_prps[] IS INITIAL. WRITE:/'@3U@ Inconsistency between coding mask and db-table entry' NO-GAP COLOR COL_NEGATIVE, 'in table PRPS existing' COLOR COL_NEGATIVE. LOOP AT itabelle_prps.

    WRITE:/ itabelle_prps-posid USING NO EDIT MASK. ENDLOOP. ELSE.

  • 7/25/2019 z Codingmask En

    15/26

    ENDIF.* Ausgabe der pspid's IF NOT itabelle_projs[] IS INITIAL. WRITE:/'@3U@ Inconsistency between coding mask and db-table entry' NO-GAP COLOR COL_NEGATIVE, 'in table PROJS existing' COLOR COL_NEGATIVE.

    LOOP AT itabelle_projs. WRITE:/ itabelle_projs-pspid USING NO EDIT MASK. ENDLOOP. ELSE. ENDIF.* Ausgabe der posid's IF NOT itabelle_prpss[] IS INITIAL. WRITE:/'@3U@ Inconsistency between coding mask and db-table entry' NO-GAP COLOR COL_NEGATIVE, 'in table PRPSS existing' COLOR COL_NEGATIVE. LOOP AT itabelle_prpss.

    WRITE:/ itabelle_prpss-posid USING NO EDIT MASK. ENDLOOP. ELSE. ENDIF.* Ausgabe der pspid's IF NOT itabelle_vsproj_cn[] IS INITIAL. WRITE:/'@3U@ Inconsistency between coding mask and db-table entry' NO-GAP COLOR COL_NEGATIVE, 'in table VSPROJ_CN existing' COLOR COL_NEGATIVE. LOOP AT itabelle_vsproj_cn. WRITE:/ itabelle_vsproj_cn-pspid USING NO EDIT MASK. ENDLOOP.

    ELSE. ENDIF.* Ausgabe der posid's IF NOT itabelle_vsprps_cn[] IS INITIAL. WRITE:/'@3U@ Inconsistency between coding mask and db-table entry' NO-GAP COLOR COL_NEGATIVE, 'in table VSPRPS_CN existing' COLOR COL_NEGATIVE. LOOP AT itabelle_vsprps_cn. WRITE:/ itabelle_vsprps_cn-posid USING NO EDIT MASK. ENDLOOP. ELSE. ENDIF.

    ENDFORM. " pspid_posid_mit_SZ_Ausgabe

    *& **& Form Hotspots_Absprung*& ** text* ** > p1 text* < p2 text* *FORM hotspots_absprung.

    SKIP. IF NOT variable1 = '0'.

  • 7/25/2019 z Codingmask En

    16/26

    WRITE:/ variable1 COLOR COL_GROUP, 'Entry in table PROJ existing' COLOR COL_HEADING. IF itabelle_proj[] IS INITIAL. WRITE:/ '==> table PROJ' COLOR COL_POSITIVE HOTSPOT . ELSE. ENDIF.

    ENDIF.

    SKIP. IF NOT variable2 = '0'. WRITE:/ variable2 COLOR COL_GROUP, 'Entry in table PRPS existing' COLOR COL_HEADING. IF itabelle_proj[] IS INITIAL. WRITE:/ '==> table PRPS' COLOR COL_POSITIVE HOTSPOT. ELSE. ENDIF. ENDIF.

    SKIP. IF NOT variable3 = '0'. WRITE:/ variable3 COLOR COL_GROUP, 'Entry in table PROJS existing' COLOR COL_HEADING. IF itabelle_proj[] IS INITIAL. WRITE:/ '==> table PROJS' COLOR COL_POSITIVE HOTSPOT. ELSE. ENDIF. ENDIF.

    SKIP.

    IF NOT variable4 = '0'. WRITE:/ variable4 COLOR COL_GROUP, 'Entry in table PRPSS existing' COLOR COL_HEADING. IF itabelle_proj[] IS INITIAL. WRITE:/ '==> table PRPSS' COLOR COL_POSITIVE HOTSPOT. ELSE. ENDIF. ENDIF.

    SKIP. IF NOT variable5 = '0'. WRITE:/ variable5 COLOR COL_GROUP, 'Entry in table VSPROJ_CN existing' COLOR COL_HEADING. IF itabelle_proj[] IS INITIAL. WRITE:/ '==> table VSPROJ_CN ' COLOR COL_POSITIVE HOTSPOT. ELSE. ENDIF. ENDIF.

    SKIP. IF NOT variable6 = '0'. WRITE:/ variable6 COLOR COL_GROUP, 'Entry in table VSPRPS_CN existing' COLOR COL_HEADING.

    IF itabelle_proj[] IS INITIAL. WRITE:/ '==> table VSPRPS_CN' COLOR COL_POSITIVE HOTSPOT.

  • 7/25/2019 z Codingmask En

    17/26

    ELSE. ENDIF. ENDIF.

    ENDFORM. " Hotspots_Absprung

    *& *

    *& Form projnr_ausgabe_proj*& ** text* ** > p1 text* < p2 text* *FORM projnr_ausgabe_proj.

    DESCRIBE TABLE itab_proj. WRITE:/ sy-tfill COLOR COL_GROUP, 'Entries in table PROJ existing' COLOR COL_HEADING.

    SKIP. ULINE AT /(80). WRITE:/ sy-vline, 'internal project number' COLOR COL_HEADING, 28 sy-vline, 'external project number' COLOR COL_HEADING, 55 sy-vline, 'object number' COLOR COL_HEADING, 80 sy-vline. ULINE AT /(80). LOOP AT itab_proj. WRITE:/ sy-vline, itab_proj-pspnr USING NO EDIT MASK, sy-vline, itab_proj-pspnr, sy-vline, itab_proj-objnr, sy-vline. ULINE AT /(80).

    ENDLOOP.

    ENDFORM. " projnr_ausgabe_proj

    *& **& Form projnr_ausgabe_prps*& ** text* ** > p1 text* < p2 text* *FORM projnr_ausgabe_prps.

    SKIP. SKIP. SKIP. DESCRIBE TABLE itab_prps. WRITE:/ sy-tfill COLOR COL_GROUP, 'Entries in table PRPS existing' COLOR COL_HEADING. SKIP. ULINE AT /(80). WRITE:/ sy-vline, 'internal project number' COLOR COL_HEADING, 28 sy-vline, 'external project number' COLOR COL_HEADING, 55 sy-vline, 'object number' COLOR COL_HEADING,

    80 sy-vline. ULINE AT /(80). LOOP AT itab_prps.

  • 7/25/2019 z Codingmask En

    18/26

    WRITE:/ sy-vline, itab_prps-pspnr USING NO EDIT MASK, sy-vline, itab_prps-pspnr, sy-vline, itab_prps-objnr, sy-vline. ULINE AT /(80). ENDLOOP.

    ENDFORM. " projnr_ausgabe_prps

    *& **& Form projnr_ausgabe_projs*& ** text* ** > p1 text* < p2 text* *FORM projnr_ausgabe_projs.

    SKIP. SKIP. SKIP. DESCRIBE TABLE itab_projs. WRITE:/ sy-tfill COLOR COL_GROUP, 'Entries in table PROJS existing' COLOR COL_HEADING. SKIP. ULINE AT /(80). WRITE:/ sy-vline, 'internal project number' COLOR COL_HEADING, 28 sy-vline, 'external project number' COLOR COL_HEADING, 55 sy-vline, 'object number' COLOR COL_HEADING, 80 sy-vline. ULINE AT /(80).

    LOOP AT itab_projs. WRITE:/ sy-vline, itab_projs-pspnr USING NO EDIT MASK, sy-vline, itab_projs-pspnr, sy-vline, itab_projs-objnr, sy-vline. ULINE AT /(80). ENDLOOP.

    ENDFORM. " projnr_ausgabe_projs*& **& Form projnr_ausgabe_prpss*& ** text* ** > p1 text* < p2 text* *FORM projnr_ausgabe_prpss.

    SKIP. SKIP. SKIP. DESCRIBE TABLE itab_prpss. WRITE:/ sy-tfill COLOR COL_GROUP, 'Entries in table PRPSS existing' COLOR COL_HEADING.

    SKIP. ULINE AT /(80). WRITE:/ sy-vline, 'internal project number' COLOR COL_HEADING,

  • 7/25/2019 z Codingmask En

    19/26

    28 sy-vline, 'external project number' COLOR COL_HEADING, 55 sy-vline, 'object number' COLOR COL_HEADING, 80 sy-vline. ULINE AT /(80). LOOP AT itab_prpss. WRITE:/ sy-vline, itab_prpss-pspnr USING NO EDIT MASK, sy-vline, itab_prpss-pspnr,

    sy-vline, itab_prpss-objnr, sy-vline. ULINE AT /(80). ENDLOOP.

    ENDFORM. " projnr_ausgabe_prpss*& **& Form projnr_ausgabe_vsproj_cn*& ** text* ** > p1 text

    * < p2 text* *FORM projnr_ausgabe_vsproj_cn.

    SKIP. SKIP. SKIP. DESCRIBE TABLE itab_vsproj_cn. WRITE:/ sy-tfill COLOR COL_GROUP, 'Entries in table VSPROJ_CN existing' COLOR COL_HEADING. SKIP. ULINE AT /(80). WRITE:/ sy-vline, 'internal project number' COLOR COL_HEADING,

    28 sy-vline, 'external project number' COLOR COL_HEADING, 55 sy-vline, 'object number' COLOR COL_HEADING, 80 sy-vline. ULINE AT /(80). LOOP AT itab_vsproj_cn. WRITE:/ sy-vline, itab_vsproj_cn-pspnr USING NO EDIT MASK, sy-vline, itab_vsproj_cn-pspnr, sy-vline, itab_vsproj_cn-objnr, sy-vline. ULINE AT /(80). ENDLOOP.

    ENDFORM. " projnr_ausgabe_vsproj_cn*& **& Form projnr_ausgabe_vsprps_cn*& ** text* ** > p1 text* < p2 text* *FORM projnr_ausgabe_vsprps_cn.

    SKIP. SKIP.

    SKIP. DESCRIBE TABLE itab_vsprps_cn. WRITE:/ sy-tfill COLOR COL_GROUP,

  • 7/25/2019 z Codingmask En

    20/26

    'Entries in table VSPRPS_CN existing' COLOR COL_HEADING. SKIP. ULINE AT /(80). WRITE:/ sy-vline, 'internal project number' COLOR COL_HEADING, 28 sy-vline, 'external project number' COLOR COL_HEADING, 55 sy-vline, 'object number' COLOR COL_HEADING, 80 sy-vline.

    ULINE AT /(80). LOOP AT itab_vsprps_cn. WRITE:/ sy-vline, itab_vsprps_cn-pspnr USING NO EDIT MASK, sy-vline, itab_vsprps_cn-pspnr, sy-vline, itab_vsprps_cn-objnr, sy-vline. ULINE AT /(80). ENDLOOP.

    ENDFORM. " projnr_ausgabe_vsprps_cn*& **& Form Pruefung_und_Sel_SZ

    *& ** text* ** > p1 text* < p2 text* *FORM pruefung_und_sel_sz.

    * Selektion der Sonderzeichen SELECT * FROM tcj01. CONCATENATE tcj01-edkz1 tcj01-edkz2 tcj01-edkz3 tcj01-edkz4tcj01-edkz5 tcj01-edkz6 tcj01-edkz7 tcj01-edkz8 INTO variable_edkz. ENDSELECT.

    laenge = strlen( variable_edkz ).

    ENDFORM. " Pruefung_und_Sel_SZ*& **& Form SZ-Stelle_und_Mask_vorh*& ** text* ** > p1 text* < p2 text* *FORM sz-stelle_und_mask_vorh.

    * Stelle, an der das erste Sonderzeichen steht IF sy-fdpos = 0. ELSEIF sy-fdpos = 1. v1 = projekt. ELSEIF sy-fdpos = 2. v2 = projekt. ELSEIF sy-fdpos = 3. v3 = projekt. ELSEIF sy-fdpos = 4. v4 = projekt. ELSEIF sy-fdpos = 5. v5 = projekt.

    ENDIF.

    * Selektion (Editionsmaske vorhanden oder nicht)

  • 7/25/2019 z Codingmask En

    21/26

    SELECT * FROM tcjed INTO TABLE interne_tabelle WHERE proid LIKE v1 OR proid LIKE v2 OR proid LIKE v3 OR proid LIKE v4 OR proid LIKE v5.

    IF NOT interne_tabelle[] IS INITIAL. WRITE:/ '@3U@ Inconsistency between coding mask and db-table entry' NO-GAP COLOR COL_NEGATIVE, 'existing' COLOR COL_NEGATIVE. WRITE:/ projekt. ELSE. WRITE:/'No inconsistency found.'. WRITE:/ projekt. ENDIF.

    ENDFORM. " SZ-Stelle_und_Mask_vorh*& *

    *& Form Editionsmaske_Ausgabe*& ** text* ** > p1 text* < p2 text* *FORM editionsmaske_ausgabe.

    SKIP. ULINE AT /(36). WRITE:/ sy-vline, 'PRID' COLOR COL_HEADING , 9 sy-vline, ' coding mask' COLOR COL_HEADING,

    36 sy-vline. ULINE AT /(36). WRITE:/ sy-vline, itab_tcjed_s-proid, sy-vline, itab_tcjed_s-posid,sy-vline. ULINE AT /(36). WRITE:/ 'for coding mask' COLOR COL_POSITIVE HOTSPOT. SKIP.SKIP.SKIP.

    ENDFORM. " Editionsmaske_Ausgabe*& **& Form Editionsmaske_vorhanden*& ** text* ** > p1 text* < p2 text* *FORM editionsmaske_vorhanden.

    laenge_proid = strlen( tcjed-proid ). variable_projekt1 = projekt. SELECT SINGLE * FROM tcjed INTO CORRESPONDING FIELDS OFitab_tcjed_s WHERE proid = variable_projekt1. IF NOT itab_tcjed_s IS INITIAL. ELSE.

    variable_projekt2 = projekt. SELECT SINGLE * FROM tcjed INTO CORRESPONDING FIELDS OFitab_tcjed_s WHERE proid = variable_projekt2.

  • 7/25/2019 z Codingmask En

    22/26

    IF NOT itab_tcjed_s IS INITIAL. ELSE. variable_projekt3 = projekt. SELECT SINGLE * FROM tcjed INTO CORRESPONDING FIELDS OF itab_tcjed_s WHERE proid = variable_projekt3. IF NOT itab_tcjed_s IS INITIAL. ELSE.

    variable_projekt4 = projekt. SELECT SINGLE * FROM tcjed INTO CORRESPONDING FIELDS OF itab_tcjed_s WHERE proid = variable_projekt4. IF NOT itab_tcjed_s IS INITIAL. ELSE. variable_projekt5 = projekt. SELECT SINGLE * FROM tcjed INTO CORRESPONDING FIELDS OF itab_tcjed_s WHERE proid = variable_projekt5. IF NOT itab_tcjed_s IS INITIAL. ELSE. WRITE:/'there is no coding mask existing.'. ENDIF.

    ENDIF. ENDIF. ENDIF. ENDIF. CALL FUNCTION 'CJPN_PROJEKTNUMMER_EDIT' EXPORTING input = projekt IMPORTING output = projekt_neu EXCEPTIONS error_messages = 99. IF NOT ( projekt NE projekt_neu AND sy-subrc IS INITIAL ).

    WRITE:/'@3U@ Inconsistency between coding mask and db-table entry'NO-GAP COLOR COL_NEGATIVE, 'existing' COLOR COL_NEGATIVE. WRITE:/ projekt. ELSE. WRITE:/'No inconsistency found.'. WRITE:/ projekt. ENDIF.

    ENDFORM. " Editionsmaske_vorhanden*& **& Form tipps_und_tricks*& ** text* ** > p1 text* < p2 text* *FORM tipps_und_tricks.

    WRITE:/'Info for project coding mask' COLOR COL_GROUP. ULINE. SKIP. WRITE: /'Besides using internal and external numbers for projects and ',

    /'WBS-element there is also the possibility to edit external numbers', /'by using project coding masks.'. SKIP.

  • 7/25/2019 z Codingmask En

    23/26

    WRITE: /'Project coding masks are defined in customizing (see documentation).', /'For a defined key, numeric and/or alphanumeric segments divided by', /'special characters are set. The special characters are also defined', /'in customizing.'. SKIP. WRITE:

    /'E.g. a project coding mask is defined with ID A12. Due to that all', /'projects beginning with A12 will be automatically edited using that', /'coding mask.'. SKIP. WRITE: /'However, project coding mask A12 cannot be created if there is', /'already a (standard) project or (standard) WBS-element existing ', /'as operative object or within a version beginning with A12.'. SKIP. WRITE: /'Reason: the new coding mask might be incompatible with these already', /'existing objects.'.

    SKIP. WRITE: /'Example:', /'Project coding mask: A12-XXX.0000/XX', /'where: X: alphanumerical 0: numerical'. SKIP. WRITE: /'Within that example there is an alphanumerical segment with lenght of', /'three characters, a numerical segment with the length of four and ', /'an alphanumeric segment with the length of two characters. These are', /'separated with special characters (- . /).'. SKIP. WRITE:

    /'This project coding mas cannot be created, if there is already a WBS-', /'element existing with A12ABCDEFG.'. SKIP. WRITE: /'A12 determines which coding mask is used', /'ABC first numeric segment', /'DEFG numeric segment'. SKIP. WRITE: /'That means within one segment there is a non numeric value (DEFG).'. SKIP. WRITE: /'Because of that transporting project coding masks between clients', /'or systems is critical. The transport itself is not doing any checks', /'and therefore will transport project coding mask A12-XXX.0000/XX', /'into the receiving client/system even though WBS-element A12ABCDEFG', /'does already exist in that system.'. SKIP. WRITE: /'Doing that will lead to the system no longer finding projects and', /'WBS-elements or errors when doing the conversion. Also a termination', /'with RPERF_ILLEGAL_STATEMENT in CJPN_PROJEKTNUMMER_UNEDIT(LCJPNF01)', /'might occur once the F4 help for (standard) project or (standard)', /'WBS-element is called.'. SKIP.

    WRITE: /'Due to this a warning is processed when you do transport a project', /'coding mask (note no. 158714).'.

  • 7/25/2019 z Codingmask En

    24/26

    SKIP. WRITE: /'In case of inconsistencies between the external number in tables ', /'PROJ, PRPS, PROJS, PRPSS and the project coding masks in table ', /'TCJED, the affected project coding masks have to be removed from', /'table TCJED by using an ABAP report', /'e.g.:',

    /'REPORT DELTCJED.', /'TABLES: TCJED.', /'DELETE FROM TCJED WHERE PROID = `xxx.', /'*xxx muss den Editionsschlssel enthalten,', /'*z.B. Y oder ABC oder MS5T usw.', /'* Case sensitive!'. SKIP. WRITE: /'Inconsistencies will arise if the lenght of the external number does', /'not correspond with the length of the project coding mask or if the', /'existing character is an alphanumerc character within a numeric', /'segment of the project coding mask is existing'.

    SKIP. WRITE: /'Projects and WBS-elements with a coding mask will be stored in the', /'database tables without the special characters.'. SKIP. WRITE: /'Numerical segments will be filled with leading zeroes.'. SKIP. WRITE: /'Alphanumerical segments will be stored right-aligned with leading', /'spaces.'. SKIP. WRITE:

    /'Examples using project coding mask described above:'. SKIP. WRITE: /'A12-A.1/D results in A12 A0001 D in the database', /'A12-AB.123 results in A12 AB0123 in the database', /'A12-ABC results in A12ABC0000 in the database'. SKIP. WRITE: /'If you use modification described in note no. 49439, alphanumerical', /'segments will be stored left-aligned with following spaces:'. SKIP. WRITE: /'A12A 0001D', /'A12AB 0123', /'A12ABC0000'. SKIP. WRITE: /'This will affect the (generic) search for projects and WBS-', /'elements by using F4 help:'. SKIP. WRITE: /'In general F4 help is looking up strings in the database using the', /'not edited form.'. SKIP. WRITE:

    /'Within the search string no special characters are allowed.', /'Also the leading zeroes within the alphanumerical segments and the', /'leading (or follwing spaces when note 49293 was applied) spaces',

  • 7/25/2019 z Codingmask En

    25/26

    /'within the alphanumerical segments need to be considered.'. SKIP. WRITE: /'Example:', /'A12-A* the system will not find anything', /'A12A* without note 49493: the system will find only A12-ABC', /' with note 49293: the system will find all three',

    'objects', /'A12+++0* the system will find all three objects'. SKIP. WRITE: /'If you want to change an already existing project coding mask in ', /'customizing the following rules apply:'. SKIP. WRITE: /'- You only can extend the coding mask by a new alphanumerical', /'segment.'. SKIP. WRITE:

    /'- You only can change a numerical segment into an alphanumerical', /'one with the same length.'. SKIP. WRITE: /'The latter does have an impact on the display the project objects', /'(projects and WBS-elements) and the functionality to look up the', /'next free number.'. SKIP. WRITE: /'Example:', /'You use project coding mask: A-0000-00', /'and create project: A-0001.', /'The project will be stored as: A000100.'.

    SKIP. WRITE: /'The numerical segment is filled with zeroes. Finding the next free', /'number with start value A-0001 returns with A-0002.', /'The system is selecting from the database using A000100'. SKIP. WRITE: /'You change the project coding mask to: A-0000-XX.'. SKIP. WRITE: /'Doing that changes the relevance of the filled in leading zeroes.', /'As we are dealing with an alphanumerical segment now, these zeroes', /'will be interpreted. Meaning the project will be displayed as:', /'A-0001-00.'. SKIP. WRITE: /'The function to find the next free number using start value A-0001', /'will find number A-0001! The system is looking with A0001 (two', /'spaces at the end of the search string) as start value.'. SKIP. WRITE: /'Looking up the next free number using A-0001-00 will find A-0001-01,', /'as the system is interpreting the last only numeric segment.'. SKIP. WRITE:

    /'Please consider that effect before you change existing project', /'coding masks within active system installations/clients.'.

  • 7/25/2019 z Codingmask En

    26/26

    ENDFORM. " tipps_und_tricks


Recommended