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: BOME02 */ /* TITLE: Bill of Material with Lead Time Information */ /* (bome02) */ /* PRODUCT: OR */ /* SYSTEM: ALL */ /* KEYS: OR PPLOT */ /* PROCS: BOM, PRINT, SORT, NETDRAW */ /* DATA: */ /* */ /* SUPPORT: UPDATE: */ /* REF: */ /* MISC: Example 2 from the BOM Procedure chapter of the */ /* BOM book. */ /* */ /**************************************************************/ /* Product Structure and Part Master data */ data SlBOM2; input Parent $8. Component $8. Desc $24. Unit $8. LeadTime 4.0 QtyPer 4.0 Gros_Req 4.0 On_Hand 4.0 ; datalines; LA01 Lamp LA Each 2 . 50 20 LA01 B100 Base assembly Each 1 1 . 50 LA01 S100 Black shade Each 2 1 . . LA01 A100 Socket assembly Each 1 1 . . B100 1100 Finished shaft Each 2 1 . . B100 1200 6-Diameter steel plate Each 3 1 . . B100 1300 Hub Each 2 1 . . B100 1400 1/4-20 Screw Each 1 4 . . A100 1500 Steel holder Each 2 1 . . A100 1600 One-way socket Each 2 1 . . A100 1700 Wiring assembly Each 1 1 . . 1100 2100 3/8 Steel tubing Inches 3 26 . . 1500 1400 1/4-20 Screw Each 1 2 . . 1700 2200 16-Gauge lamp cord Feet 2 12 . . 1700 2300 Standard plug terminal Each 1 1 . . ; /* Display the input data set */ proc print data=SlBOM2 noobs; title 'ABC Lamp Company'; title3 'PROC BOM Input Data Set'; run; /* Create the indented BOM and the summarized parts list */ proc bom data=SlBOM2 out=IndBOM2 summaryout=SumBOM2; structure / part=Component leadtime=LeadTime parent=Parent component=Component quantity=QtyPer qtyonhand=On_hand requirement=Gros_Req id=(Desc Unit); run; /* Display the indented BOM data */ proc print data=IndBOM2 noobs; var _Level_ _Parent_ _Part_ Desc QtyPer Qty_Prod Unit LeadTime Tot_Lead _Prod_; title 'ABC Lamp Company'; title3 'Indented Bill of Material, Part LA01'; run; /* Sort and display the summarized parts list */ proc sort data=SumBOM2; by _Part_; run; proc print data=SumBOM2 noobs; title 'ABC Lamp Company'; title3 'Summarized Parts List, Period 2'; run; /* Prepare the data set for running NETDRAW */ data IndBOM2a(drop=Part_ID); set IndBOM2; Paren_ID=Part_ID; run; data IndBOM2b; set IndBOM2(keep=Paren_ID Part_ID); run; data TreBOM2; set IndBOM2a IndBOM2b; LTnQP = put(LeadTime, f3.)||" "||put(QtyPer, f3.); run; /* Specify graphics options */ title h=4pct j=c 'Multilevel Bill of Material with Lead-time Offsetting'; footnote h=3pct j=l 'Node shows Part Number, Lead-time, and Quantity Required'; pattern1 v=e c=blue; /* Get the layout information for the BOM tree */ proc netdraw data=TreBOM2( where=(Paren_ID NE .) ) out=Layout2 nodisplay; actnet / act=Paren_ID succ=Part_ID id=(_Part_ LTnQP Tot_Lead) ybetween=3 xbetween=15 tree rectilinear nodefid nolabel; run; /* Lead time offset the X coordinate of each node */ data TreBOM2a; set Layout2; if _seq_ = 0; drop _seq_; _x_ = Tot_Lead; run; /* Display the BOM tree with lead-time offsetting */ proc netdraw data=TreBOM2a out=NetOUT;; actnet / id=(_Part_ LTnQP) ctext=black htext=3 carcs=black align=Tot_Lead frame pcompress xbetween=15 ybetween=3 arrowhead=0 rectilinear nodefid nolabel; run;