1 | GECSSTTR ;WISC/RFJ-stacker file transmission utilities ;08 Dec 93
|
---|
2 | ;;2.0;GCS;**4,5,11,13,27**;MAR 14, 1995
|
---|
3 | Q
|
---|
4 | ;
|
---|
5 | ;
|
---|
6 | ERROR(DA,ERRORMSG) ; record error for stack da
|
---|
7 | ; errormsg = error message to record
|
---|
8 | I '$D(^GECS(2100.1,DA,0)) Q
|
---|
9 | L +^GECS(2100.1,DA,1)
|
---|
10 | I ERRORMSG="" S ERRORMSG="Unspecified"
|
---|
11 | S $P(^GECS(2100.1,DA,1),"^",2)=ERRORMSG
|
---|
12 | L -^GECS(2100.1,DA,1)
|
---|
13 | Q
|
---|
14 | ;
|
---|
15 | ;
|
---|
16 | RECUSER(SEGMENT,GROUP) ; build receiving user array for segment (2101.2)
|
---|
17 | ; group = 1 to include G.batch mail group
|
---|
18 | ; receiving user array returned in GECSXMY
|
---|
19 | K GECSXMY
|
---|
20 | N %,D,DA,DOMAIN,SYSID
|
---|
21 | S DA=+$P($G(^GECS(2101.2,+$O(^GECS(2101.2,"B",SEGMENT,0)),0)),"^",4) I 'DA Q
|
---|
22 | S %=0 F S %=$O(^GECS(2101.1,DA,2,%)) Q:'% S D=$G(^(%,0)) I $P(D,"^",3)=1 D
|
---|
23 | . S DOMAIN=$P($G(^DIC(4.2,+$P(D,"^",2),0)),"^") I DOMAIN'="" S DOMAIN="@"_DOMAIN
|
---|
24 | . S GECSXMY($P(D,"^")_DOMAIN)=""
|
---|
25 | ;
|
---|
26 | ; get user in mail group
|
---|
27 | I GROUP S SYSID=$P($G(^GECS(2101.1,DA,0)),"^",4) I $L(SYSID) S GECSXMY("G."_SYSID)=""
|
---|
28 | Q
|
---|
29 | ;
|
---|
30 | ;
|
---|
31 | MAILMSG(SEGMENT,SEQUENCE,TOTAL) ; create mail message with code sheets
|
---|
32 | ; segment = entry in file 2101.2
|
---|
33 | ; sequence = sequence number
|
---|
34 | ; total = total sequences
|
---|
35 | ; returns xmz message number
|
---|
36 | N %,%X,%Y,GECSXMY,XCNP,XMDISPI,XMDUZ,XMMG,XMSUB,XMTEXT,XMY,XMZ,ZTSK
|
---|
37 | ;
|
---|
38 | ; build receiving queue and user array
|
---|
39 | D RECUSER(SEGMENT,1)
|
---|
40 | I '$D(GECSXMY) Q "0^No receiving users for code sheets"
|
---|
41 | S %X="GECSXMY(",%Y="XMY(" D %XY^%RCR
|
---|
42 | ;
|
---|
43 | S XMDUZ=$S($D(ZTQUEUED):.5,'$G(DUZ):.5,$G(GECSFQUE):.5,1:DUZ),XMTEXT="^TMP($J,""GECSSTTR"","_SEQUENCE_",",XMSUB="GCS TRANSACTION "_SEGMENT_" (MSG "_SEQUENCE_" OF "_TOTAL_")"
|
---|
44 | D ^XMD
|
---|
45 | I '$G(XMZ) S XMZ="0^Mailman Error: "_$S($G(XMMG)'="":XMMG,1:"<not recorded>")
|
---|
46 | Q XMZ
|
---|
47 | ;
|
---|
48 | ;
|
---|
49 | MESSAGE(DA,NODE,XMZ) ; add message (XMZ) to node in stack file for DA
|
---|
50 | N %
|
---|
51 | L +^GECS(2100.1,DA,NODE)
|
---|
52 | I $D(^GECS(2100.1,DA,NODE,XMZ,0)) Q
|
---|
53 | I '$D(^GECS(2100.1,DA,NODE,0)) S ^(0)=$S(NODE=20:"^2100.12^^",1:"^2100.121^^")
|
---|
54 | S ^GECS(2100.1,DA,NODE,XMZ,0)=XMZ
|
---|
55 | S ^GECS(2100.1,"AM",XMZ,DA)=""
|
---|
56 | S %=^GECS(2100.1,DA,NODE,0),$P(%,"^",3)=XMZ,$P(%,"^",4)=$P(%,"^",4)+1,^(0)=%
|
---|
57 | L -^GECS(2100.1,DA,NODE)
|
---|
58 | Q
|
---|
59 | ;
|
---|
60 | ;
|
---|
61 | HOLDDATE(DATA) ; return the hold date from the tt2 segment
|
---|
62 | ; if hold date is not greater than today, return null
|
---|
63 | N HOLDDATE
|
---|
64 | S HOLDDATE=$P(DATA,"^",2)_$P(DATA,"^",3)_$P(DATA,"^",4)
|
---|
65 | ; some segments have yr and mo on different pieces
|
---|
66 | I $P(DATA,"^")="AT1" S HOLDDATE=$P(DATA,"^",6)_$P(DATA,"^",4)_$P(DATA,"^",5)
|
---|
67 | I "BD2PV2SA2ST2DD2"[$P(DATA,"^") S HOLDDATE=$P(DATA,"^",4)_$P(DATA,"^",2)_$P(DATA,"^",3)
|
---|
68 | I $L(HOLDDATE)'=6 Q ""
|
---|
69 | S HOLDDATE=$S($E(HOLDDATE,1,2)<70:3,1:2)_HOLDDATE
|
---|
70 | I HOLDDATE'>DT Q ""
|
---|
71 | Q HOLDDATE
|
---|
72 | ;
|
---|
73 | ;
|
---|
74 | CTLDATE(CTLSEG) ; put transmission date and time on ctl segment
|
---|
75 | N %,%H,%I,X,Y
|
---|
76 | D NOW^%DTC
|
---|
77 | S $P(CTLSEG,"^",10)=(17+$E(X))_$E(X,2,7)
|
---|
78 | S Y=% D DD^%DT
|
---|
79 | S $P(CTLSEG,"^",11)=$$FORMTIME^GECSUFM1($P(Y,"@",2))
|
---|
80 | Q CTLSEG
|
---|