************************************************************ * BAMS/DSS AdHoc Program ITEMXWLK: Item Crosswalk Table * * * * Objective: Converts data in DPRJITP/DPRJITQ & DBIDTABS * * data views. * * * * This program modifies the Item numbers from one format * * to another and/or rolls up like items in data views. * * ie Old Bid Item to New Bid item 201B0002 to 201-010A * * or Rolls up similar Items like 203-020B to 203-020A. * * * Input: DPRJITP, DPRJITQ & DBIDTABS (all fields) * * mrm 10/00 * ************************************************************; ************************************************************* ************ SYSTEM PARAMETERS ************* *************************************************************; ***** The OPTION statement changes the program parameters. ***** ***** In this case it forces the output to 80 columns. ***** ***** The default is 132 columns. *****; option linesize=80; *; * option linesize=132; option pagesize=60; options source source2 symbolgen; libname mapdb 'E:/sadss5/mapdb'; *proc format library=library; ************************************************************* ************ BUILD CROSSWALK TABLE ************* ********** COMMENTED OUT - ALREADY RUN *********** ******** UNCOMMENT TO RUN THE FIRST TIME OR UPDATE ********* *************************************************************; *filename xwlk 'e:/sadss5/mapdb/xwlk.txt'; *data MAPDB.ITEMXWLK; * infile xwlk; * length olditem newitem $13.; * input olditem newitem; *run; *proc sort data=MAPDB.ITEMXWLK; * by olditem; *run; *proc print data=MAPDB.ITEMXWLK; * title1 'Item Crosswalk Table'; *run; ************************************************************* ************ CHANGE VIEW.DPRJITP ITEMS ************* *************************************************************; proc sort data = VIEW.DPRJITP(read=&qviewpw) out= TEMPITP; by item; run; data TEMPITP; merge TEMPITP(in=initp) MAPDB.ITEMXWLK(in=inxwlk rename=(olditem =item)); by item; if initp and inxwlk then item=newitem; if initp then output; run; proc sort; by contid pcn cn ilineno pitype cmod; run; data VIEW.DPRJITP(read=&qviewpw protect=&qviewpw); set TEMPITP; run; ************************************************************* ************ CHANGE VIEW.DPRJITQ ITEMS ************* *************************************************************; proc sort data = VIEW.DPRJITQ(read=&qviewpw) out= TEMPITQ; by item; run; data TEMPITQ; merge TEMPITQ(in=initq) MAPDB.ITEMXWLK(in=inxwlk rename=(olditem=item)); by item; if initq and inxwlk then item=newitem; if initq then output; run; proc sort; by contid pcn cn ilineno pitype cmod; run; data VIEW.DPRJITQ(read=&qviewpw protect=&qviewpw); set TEMPITQ; run; ************************************************************* ************ CHANGE VIEW.DBIDTABS ITEMS ************* *************************************************************; proc sort data = VIEW.DBIDTABS(read=&qviewpw) out= TEMPBID; by item; run; data TEMPBID; merge TEMPBID(in=initb) MAPDB.ITEMXWLK(in=inxwlk rename=(olditem =item)); by item; if initb and inxwlk then item=newitem; if initb then output; run; proc sort; by contid vendor iplineno; run; data VIEW.DBIDTABS(read=&qviewpw protect=&qviewpw); set TEMPBID; run;