1 | VALMW3 ; ALB/MJK - Create transport routines for LM;03:39 PM 16 Dec 1992
|
---|
2 | ;;1;List Manager;;Aug 13, 1993
|
---|
3 | ;
|
---|
4 | EN ; -- exporter main entry point
|
---|
5 | N VALMSYS,VALMNS,VALMROU,VALMAX
|
---|
6 | S U="^",DTIME=600 K ^UTILITY($J)
|
---|
7 | D HOME^%ZIS
|
---|
8 | W @IOF,!?20,"*** List Template Export Utility ***"
|
---|
9 | I '$$DUZ() G ENQ
|
---|
10 | S VALMSYS=$$OS() I VALMSYS="" G ENQ
|
---|
11 | S VALMNS=$$NS() I VALMNS="" G ENQ
|
---|
12 | S VALMROU=$$ROU(.VALMNS) I VALMROU="" G ENQ
|
---|
13 | S VALMAX=$$MAX() I 'VALMAX G ENQ
|
---|
14 | W !!!,">>> Exporting LIST TEMPLATES with namespace '"_VALMNS_"'."
|
---|
15 | D BLD,FILE(.VALMROU)
|
---|
16 | ENQ Q
|
---|
17 | ;
|
---|
18 | ;
|
---|
19 | DUZ() ; -- check duz and duz(0)
|
---|
20 | I $S('$D(DUZ(0)):1,DUZ(0)'="@":1,1:0) D
|
---|
21 | .W !,"PROGRAMMER ACCESS REQUIRED",!
|
---|
22 | .S Y=0
|
---|
23 | E S Y=1
|
---|
24 | Q Y
|
---|
25 | ;
|
---|
26 | OS() ; -- get os #
|
---|
27 | I $D(^%ZOSF("OS"))#2 D
|
---|
28 | .S Y=+$P(^("OS"),"^",2)
|
---|
29 | E S Y=0
|
---|
30 | Q Y
|
---|
31 | ;
|
---|
32 | NS() ; -- ask for namespace
|
---|
33 | NS1 S VALMNS=""
|
---|
34 | W !!,">>> Enter the Name of the Package (2-4 characters): "
|
---|
35 | R X:$S($D(DTIME):DTIME,1:60) G NSQ:"^"[X
|
---|
36 | I X'?1U1.NU!($L(X)>4) D NS^VALMW5 G NS1
|
---|
37 | S VALMNS="",DIC="^DIC(9.4,",DIC(0)="EZ",D="C" D IX^DIC
|
---|
38 | I Y>0 S SDPK=+Y,VALMNS=$P(Y(0),U,2)
|
---|
39 | S:Y<1!(VALMNS="") VALMNS=$$ADHOC(X)
|
---|
40 | NSQ Q VALMNS
|
---|
41 | ;
|
---|
42 | ROU(VALMNS) ; -- ask for export routine name
|
---|
43 | N ROU,DIR,X,Q
|
---|
44 | ROU1 S VALMROU=""
|
---|
45 | W ! S:$G(VALMNS)]"" DIR("B")=VALMNS_"L"
|
---|
46 | S DIR("A")=">>> Enter Routine Name",DIR(0)="F^2:6^" D ^DIR K DIR
|
---|
47 | G ROUQ:"^"[Y S VALMROU=Y
|
---|
48 | W !!,"I am going to create a series of '",VALMROU,"*' routines."
|
---|
49 | I $D(^%ZOSF("TEST"))#2 X ^("TEST") I W *7,!,"but '"_VALMROU_"' is ALREADY ON FILE!" S Q=1
|
---|
50 | W !,"Is that OK" D YN^DICN
|
---|
51 | I %<0!(%=2) S:%=2 VALMROU="" G ROUQ
|
---|
52 | I '% D ROU^VALMW5 G ROU1
|
---|
53 | ROUQ Q VALMROU
|
---|
54 | ;
|
---|
55 | MAX() ; -- ask for max size of routines
|
---|
56 | N Y
|
---|
57 | MAX1 S Y=""
|
---|
58 | W !!,">>> MAXIMUM ROUTINE SIZE(BYTES): ",^DD("ROU"),"// "
|
---|
59 | R Y:$S($D(DTIME):DTIME,1:60) I '$T G MAXQ
|
---|
60 | S:Y="" Y=^DD("ROU")
|
---|
61 | I Y[U S Y="" G MAXQ
|
---|
62 | I Y\1'=Y!(Y<2000)!(Y>9999) D MAX^VALMW5 G MAX
|
---|
63 | MAXQ Q Y
|
---|
64 | ;
|
---|
65 | ADHOC(X) ; -- pick any namespace
|
---|
66 | L W !!,"Package "_X_" not found"
|
---|
67 | W !,"Please enter the package namespace you wish to export: "
|
---|
68 | R X:300
|
---|
69 | I '$T!(X="")!(X'?1A.E) S X="" G LQ
|
---|
70 | I $L(X)>4 W !,"Namespace too long" G L
|
---|
71 | LQ Q X
|
---|
72 | ;
|
---|
73 | BLD ; -- build utility
|
---|
74 | N VALMLN,VALMX,VALMNAME,VALM,VALMGLB
|
---|
75 | S VALMLN=0,VALMX=VALMNS
|
---|
76 | F S VALMX=$O(^SD(409.61,"B",VALMX)) Q:VALMX=""!($E(VALMX,1,$L(VALMNS))'=VALMNS) S VALM=+$O(^(VALMX,0)) I $D(^SD(409.61,VALM,0)),$P(^(0),U,7) S VALMNAME=$P(^(0),U) D
|
---|
77 | .W !?5,"o ",VALMNAME
|
---|
78 | .D SET(" W !,""'"_VALMNAME_"' List Template...""")
|
---|
79 | .D SET(" S DA=$O(^SD(409.61,""B"","""_VALMNAME_""",0)),DIK=""^SD(409.61,"" D ^DIK:DA")
|
---|
80 | .D SET(" K DO,DD S DIC(0)=""L"",DIC=""^SD(409.61,"",X="""_VALMNAME_""" D FILE^DICN S VALM=+Y")
|
---|
81 | .D SET(" I VALM>0 D")
|
---|
82 | .;
|
---|
83 | .S VALMGLB="^SD(409.61,"_VALM_",",X=VALMGLB_"-1)"
|
---|
84 | .F S X=$Q(@X) Q:$E(X,1,$L(VALMGLB))'=VALMGLB D:X'[",""B""," SET(" .S ^SD(409.61,VALM,"_$P(X,VALMGLB,2,99)_"="""_$$QUOTE(@X)_"""")
|
---|
85 | .;
|
---|
86 | .D SET(" .S DA=VALM,DIK=""^SD(409.61,"" D IX1^DIK K DA,DIK")
|
---|
87 | .D SET(" .W ""Filed.""")
|
---|
88 | .D SET(" ;")
|
---|
89 | D SET(" K DIC,DIK,VALM,X,DA Q")
|
---|
90 | Q3 Q
|
---|
91 | ;
|
---|
92 | SET(X) ; -- set line utility
|
---|
93 | S VALMLN=VALMLN+1,^UTILITY($J,VALMLN,0)=X W "."
|
---|
94 | Q
|
---|
95 | ;
|
---|
96 | QUOTE(X) ; -- add double quotes
|
---|
97 | N P,L
|
---|
98 | S P=1,L=$L(X)
|
---|
99 | F S P=$F(X,"""",P) Q:'P!(P>(L+1)) S X=$E(X,1,P-1)_""""_$E(X,P,L),L=L+1,P=P+1
|
---|
100 | Q X
|
---|
101 | ;
|
---|
102 | FILE(VALMROU) ; -- file routines
|
---|
103 | N %H,VALMDATE,VALMNUM,VALMLN
|
---|
104 | S %H=+$H D YX^%DTC
|
---|
105 | S VALMDATE=$E(Y,5,6)_"-"_$E(Y,1,3)_"-"_$E(Y,9,12)
|
---|
106 | S VALMNUM="",VALMLN=0
|
---|
107 | F D SAVE(.VALMROU,.VALMNUM,.VALMLN,.VALMDATE) Q:VALMLN="" S VALMNUM=VALMNUM+1
|
---|
108 | Q
|
---|
109 | ;
|
---|
110 | SAVE(VALMROU,VALMNUM,VALMLN,VALMDATE) ; -- save to routine
|
---|
111 | N LINE,SIZE
|
---|
112 | K ^UTILITY($J,0) S ^(0,1)=VALMROU_VALMNUM_" ; List Template Exporter ; "_VALMDATE,^(1.1)=" ;; ;",SIZE=0
|
---|
113 | F LINE=2:1 S VALMLN=$O(^UTILITY($J,VALMLN)) Q:VALMLN="" S ^UTILITY($J,0,LINE)=^(VALMLN,0),SIZE=$L(^(LINE))+SIZE I $E(^(LINE),1,2)'=" .",SIZE+700>VALMAX Q
|
---|
114 | I VALMLN,$O(^UTILITY($J,VALMLN)) S ^UTILITY($J,0,LINE+1)=" G ^"_VALMROU_(VALMNUM+1)
|
---|
115 | S X=VALMROU_VALMNUM X ^DD("OS",VALMSYS,"ZS") W !,X_" has been filed..."
|
---|
116 | Q
|
---|
117 | ;
|
---|