| 1 | ECXTREX ;BPFO/JRP - Queue DSS Fiscal Year Specific Extract;8-AUG-2003 ; 6/11/07 12:46pm | 
|---|
| 2 | ;;3.0;DSS EXTRACTS;**49,71,84,92,105**;Dec 22, 1997;Build 70 | 
|---|
| 3 | ; | 
|---|
| 4 | EN ;Main entry point | 
|---|
| 5 | W @IOF | 
|---|
| 6 | N DIC,X,Y,DTOUT,DUOUT | 
|---|
| 7 | W !,"****************************************************************" | 
|---|
| 8 | W !,"*                                                              *" | 
|---|
| 9 | W !,"* This option should be used with caution as it allows for the *" | 
|---|
| 10 | W !,"* extraction of data using specified fiscal year logic.  This  *" | 
|---|
| 11 | W !,"* gives the ability to extract fiscal year 200x data using     *" | 
|---|
| 12 | W !,"* fiscal year 200(x+1) logic and vice versa.  Note that data   *" | 
|---|
| 13 | W !,"* extracted via this method may or may not be transmittable to *" | 
|---|
| 14 | W !,"* the DSS production queue at the Austin Automation Center.    *" | 
|---|
| 15 | W !,"*                                                              *" | 
|---|
| 16 | W !,"*--------------------------------------------------------------*" | 
|---|
| 17 | W !,"*                                                              *" | 
|---|
| 18 | W !,"* Note that this option does not update the last date used for *" | 
|---|
| 19 | W !,"* the given extraction.  It also does not verify that the time *" | 
|---|
| 20 | W !,"* frame selected is after the last date used for the extract.  *" | 
|---|
| 21 | W !,"*                                                              *" | 
|---|
| 22 | W !,"****************************************************************" | 
|---|
| 23 | W !! | 
|---|
| 24 | ;Pick extract to queue | 
|---|
| 25 | S DIC="^ECX(727.1," | 
|---|
| 26 | S DIC(0)="AEQMZ" | 
|---|
| 27 | S DIC("A")="Select DSS Extract to queue: " | 
|---|
| 28 | S DIC("S")="I ('$P(^(0),U,12))&($P(^(0),U,8)'="""")&($G(^(7))'[""Inactive"")" | 
|---|
| 29 | S DIC("W")="W ""("",$P(^(0),U,8),"")""" | 
|---|
| 30 | D ^DIC | 
|---|
| 31 | I ($D(DUOUT))!($D(DTOUT))!(Y<1) Q | 
|---|
| 32 | N ECXRTN,ECXDA | 
|---|
| 33 | S ECXDA=+Y | 
|---|
| 34 | ;Get extract specific routine name | 
|---|
| 35 | S ECXRTN=$G(^ECX(727.1,ECXDA,"ROU")) | 
|---|
| 36 | I ECXRTN="" D  Q | 
|---|
| 37 | .W !!,"Selected extract is not correctly defined in the EXTRACT" | 
|---|
| 38 | .W !,"DEFINITIONS file (#727.1).  The ROUTINE field (#4) does not" | 
|---|
| 39 | .W !,"have a value in it." | 
|---|
| 40 | .W ! | 
|---|
| 41 | .D PAUSE | 
|---|
| 42 | ;Get time frame for extract | 
|---|
| 43 | N STRTDT,ENDDT,DIR,DIRUT,DIROUT,OUT,ECXDATES | 
|---|
| 44 | S OUT=0 F  S (STRTDT,ENDDT)="" D  Q:OUT | 
|---|
| 45 | .;Get start date (must be in past) | 
|---|
| 46 | .S DIR(0)="DOA" | 
|---|
| 47 | .S $P(DIR(0),"^",2)=":"_DT_":AEXP" | 
|---|
| 48 | .S DIR("A")="Starting with Date: " | 
|---|
| 49 | .D ^DIR | 
|---|
| 50 | .I $D(DIROUT)!$D(DIRUT)!(Y="") S (STRTDT,ENDDT)="" S OUT=1 Q | 
|---|
| 51 | .S STRTDT=Y | 
|---|
| 52 | .K DIR | 
|---|
| 53 | .;Get end date (must be in same month; must be in past) | 
|---|
| 54 | .S DIR(0)="DOA" | 
|---|
| 55 | .S X=$E(STRTDT,1,5)_"01" | 
|---|
| 56 | .S X=$$FMADD^XLFDT(X,32) | 
|---|
| 57 | .S X=$$FMADD^XLFDT(X,-($E(X,6,7))) | 
|---|
| 58 | .I X>DT S X=DT | 
|---|
| 59 | .S $P(DIR(0),"^",2)=STRTDT_":"_X_":AEXP" | 
|---|
| 60 | .S DIR("A")="Ending with Date: " | 
|---|
| 61 | .S DIR("B")=$$FMTE^XLFDT(X,"5D") | 
|---|
| 62 | .D ^DIR | 
|---|
| 63 | .I $D(DIROUT)!$D(DIRUT)!(Y="") S (STRTDT,ENDDT)=""  S OUT=1 Q | 
|---|
| 64 | .S ENDDT=Y | 
|---|
| 65 | .S OUT=1 | 
|---|
| 66 | Q:(STRTDT="")!(ENDDT="") | 
|---|
| 67 | S ECXDATES=STRTDT_"^"_ENDDT_"^1" | 
|---|
| 68 | ;Get extract logic to use | 
|---|
| 69 | N ECXLOGIC | 
|---|
| 70 | K DIR | 
|---|
| 71 | S DIR("A")="Select fiscal year logic to use for extract" | 
|---|
| 72 | S DIR(0)="SO^" | 
|---|
| 73 | F X=2003,2004,2005,2006,2007,2008 D | 
|---|
| 74 | .S Y=$E(X,5) | 
|---|
| 75 | .S Y=$S((Y="")!(Y=" "):"",1:"Revision "_Y_" of ") | 
|---|
| 76 | .S DIR(0)=DIR(0)_X_":"_Y_"Fiscal Year "_$E(X,1,4)_";" | 
|---|
| 77 | D ^DIR | 
|---|
| 78 | I $D(DIROUT)!$D(DIRUT) Q | 
|---|
| 79 | S ECXLOGIC=Y | 
|---|
| 80 | ;Queue extract | 
|---|
| 81 | D @("BEG^"_ECXRTN) | 
|---|
| 82 | Q | 
|---|
| 83 | PAUSE ;pause screen | 
|---|
| 84 | N DIR,X,Y,DTOUT,DUOUT,DIROUT,DIRUT | 
|---|
| 85 | S DIR(0)="E" | 
|---|
| 86 | W !! | 
|---|
| 87 | D ^DIR | 
|---|
| 88 | W !! | 
|---|
| 89 | Q | 
|---|