Select Your Region
Americas
Europe
Middle East & Africa
Asia Pacific
/**************************************************************/ /* */ /* S A S S A M P L E L I B R A R Y */ /* */ /* NAME: BOMG01 */ /* TITLE: Getting Started Examples (bomg01) */ /* PRODUCT: OR */ /* SYSTEM: ALL */ /* KEYS: OR PPLOT */ /* PROCS: BOM, PRINT, NETDRAW, SQL */ /* DATA: */ /* */ /* SUPPORT: UPDATE: */ /* REF: */ /* MISC: Examples from the Getting Started sections in the */ /* BOM Procedure chapter from the BOM book. */ /* */ /**************************************************************/ /************************************************************** Getting Started **************************************************************/ /* Part master records */ data PMaster0; input Part $8. Desc $24. Unit $8. ; datalines; 1100 Finished shaft Each 1200 6-Diameter steel plate Each 1300 Hub Each 1400 1/4-20 Screw Each 1500 Steel holder Each 1600 One-way socket Each 1700 Wiring assembly Each 2100 3/8 Steel tubing Inches 2200 16-Gauge lamp cord Feet 2300 Standard plug terminal Each A100 Socket assembly Each B100 Base assembly Each LA01 Lamp LA Each S100 Black shade Each ; /* Product structure records */ data ParComp0; input Parent $8. Component $8. QtyPer 4.0 ; datalines; LA01 B100 1 LA01 S100 1 LA01 A100 1 B100 1100 1 B100 1200 1 B100 1300 1 B100 1400 4 A100 1500 1 A100 1600 1 A100 1700 1 1100 2100 26 1500 1400 2 1700 2200 12 1700 2300 1 ; /* Display the part master file */ proc print data=PMaster0; title 'ABC Lamp Company'; title3 'Part Master Data Set'; run; /* Display the product structure file */ proc print data=ParComp0; title 'ABC Lamp Company'; title3 'Product Structure Data Set'; run; /* Create the indented BOM and summarized parts list */ proc bom data=ParComp0 pmdata=PMaster0 out=IndBOM0 summaryout=SumBOM0; structure / part=Part parent=Parent component=Component quantity=QtyPer id=(Desc Unit); run; /* Display the indented BOM data */ proc print data=IndBOM0 noobs; var _Level_ _Parent_ _Part_ Desc QtyPer Qty_Prod Unit Paren_ID Part_ID _Prod_; title 'ABC Lamp Company'; title3 'Indented Bill of Material, Part LA01'; run; proc bom data=ParComp0 pmdata=PMaster0 out=IndBOM0 summaryout=SumBOM0; structure / part=Part parent=Parent component=Component quantity=QtyPer id=(Desc Unit); run; data IndBOM0a(drop=Part_ID); set IndBOM0; Paren_ID=Part_ID; run; /* Draw a tree diagram for illustating the product structure */ /* Each record denotes a node in the tree */ data IndBOM0a(drop=Part_ID); set IndBOM0; Paren_ID=Part_ID; run; /* Extract the Parent - Part information */ data IndBOM0b; set IndBOM0(keep=Paren_ID Part_ID); run; /* Prepare the data set for running NETDRAW */ data TreBOM0; set IndBOM0a IndBOM0b; run; /* Specify graphics options */ goptions hpos=80 vpos=32; pattern1 v=e c=blue; title h=2 j=c 'Bill of Material Tree Diagram'; title2; footnote2; footnote3 h=1 j=l 'Node shows Sequence Number and Part Number'; /* Invoke PROC NETDRAW to display BOM tree */ proc netdraw data=TreBOM0( where=(Paren_ID NE .) ) out=NetOUT; actnet / act=Paren_ID succ=Part_ID id=(Paren_ID _Part_) ctext=black htext=3 font=swiss carcs=black ybetween=3 xbetween=32 centerid tree pcompress rotatetext rotate arrowhead=0 rectilinear nodefid nolabel; run; /* Sort and display the summarized parts list */ proc sort data=SumBOM0; by _Part_; run; proc print data=SumBOM0 noobs; title 'ABC Lamp Company'; title3 'Summarized Parts List, Period 1'; run;