If you REALLY, REALLY know that you want an entry to be deleted and you KNOW the consequences, you can call the ^DIK API, with DIK and DA set appropriately (read the FM programmer manual on this classic API) and the record is gone and the indexing is performed. Nothing can stop it, so you don't need to loosen the DD and then put it back again.

But, you are warned...  ;-)

Kevin Toppenberg wrote:

Nancy (and anyone else),

There are so many people that get stuck at this point,
that I think we really need to do something about it.

I'm going full speed to get my site up and running, so
I have put my installation script on the back burner
(though I will say that it worked for me and got me
through this critical first step).  Maybe I'll work on
it before the April conference in Boston (which I hope
to attend).

I think you are right about getting the other entries
deleted.  In my install script I follow these steps
(and it seemed to work for me)

You'll have to guess what the script functions do, but
it shouldn't be too hard...

Also, you mentioned about having taskman files left
orphaned because they don't match the resulting VOL
and UCI.  There is code here (thanks to Dee and Dave's
documentation from PacificHui) that fixes that.

Sometimes, fileman doesn't want you to delete the old
entries (it would mess up a running installation).  I
get around this by temporarily lifting the input
transforms, deleting the old entry, then restoring the
transform.

I won't put the full script here because it is long. But I think it is effective. I retrospective, it
might have been more straightforward to put all this
in pure M code (rather than in an XML script format),
but I was trying to make it more accessible to a
newcomer.


Kevin

================================
<UploadRecord id="Institution">Uploading INSTITUTION
record</UploadRecord>

<REM>=======================================================================</REM>
<REM>clear out all old records in DOMAIN file</REM>
<REM>=======================================================================</REM>

 <M>set File="DOMAIN"</M> <REM>set up global for
subroutine</REM>
 <M>set SubReturnPoint="StepAA2"</M>  <REM>set up
where subroutine should return to</REM>
 <M>set TargetNum=0</M>
 <Jump label="Sub-DeleteRecs"></Jump> <REM>This will
act as a subroutine, returns FirstRec</REM>

 <Label>StepAA2</Label>  <REM> Now put back in the
records we want </REM>
 <UploadRecord id="ParentDomain">Uploading parent
DOMAIN record</UploadRecord>
 <UploadRecord id="Domain" OutVar="TMGRecN">Uploading
DOMAIN record</UploadRecord>
 <M>set TMGRecN("RECNUM")="`"_TMGRecN("RECNUM")</M>


<REM>=======================================================================</REM> <Label>StepA</Label> <REM>Here we ensure only ONE record in VOLUME SET file</REM>

<REM>=======================================================================</REM>

 <M>set File="VOLUME SET"</M> <REM>set up global for
subroutine</REM>
 <M>set SubReturnPoint="StepA2"</M>    <REM>set up
where subroutine should return to</REM>
 <M>set TargetNum=1</M>
 <Jump label="Sub-DeleteRecs"></Jump>   <REM>This
will act as a subroutine, returns FirstRec</REM>
 <Label>StepA2</Label>
 <M>set VSRecNum=FirstRec</M>    <REM>This is the rec
num we'll put our info into </REM>

   <REM> Now put back in the record(s) we want </REM>
<UploadRecord id="VolumeSet">Uploading Volume Set
record</UploadRecord>


<REM>=======================================================================</REM> <Label>StepB</Label> <REM>Here we ensure only ONE record in UCI ASSOCIATION file</REM>

<REM>=======================================================================</REM>

 <M>set File="UCI ASSOCIATION"</M> <REM>set up global
for subroutine</REM>
 <M>set SubReturnPoint="StepB2"</M>    <REM>set up
where subroutine should return to</REM>
 <M>set TargetNum=1</M>
 <Jump label="Sub-DeleteRecs"></Jump>   <REM>This
will act as a subroutine, returns FirstRec</REM>
 <Label>StepB2</Label>
 <M>set UARecNum=FirstRec</M>    <REM>This is the rec
num we'll put our info into </REM>

   <REM> Now put back in the record(s) we want </REM>
 <UploadRecord id="UCIAssociation">Uploading UCI
association record</UploadRecord>


<REM>=======================================================================</REM> <Label>StepB3</Label> <REM> Here we ensure only ONE record in the DIVISION file </REM>

<REM>=======================================================================</REM>

 <M>set File="DIVISION"</M>   <REM>set up global for
subroutine</REM>
 <M>set SubReturnPoint="StepB4"</M>    <REM>set up
where subroutine should return to</REM>
 <M>set TargetNum=1</M>
 <Jump label="Sub-DeleteRecs"></Jump>   <REM>This
will act as a subroutine, returns FirstRec</REM>
 <Label>StepB4</Label>
 <M>set DIVRecNum=FirstRec</M>    <REM>This is the
rec num we'll put our info into </REM>

   <REM> Now put back in the record(s) we want </REM>
 <UploadRecord id="Division">Uploading Division
record</UploadRecord>

 <REM>TEMP... SKIP Scanning for Taskman
limitations</REM>
 <Jump label="StepD" condition="if 1=0"></Jump>

<REM>TEMP... SKIP Scanning for Taskman
limitations</REM>
 <Jump label="StepD" condition="if 1=0"></Jump>

<REM>=======================================================================</REM>
 <Label>StepC</Label> <REM>  Ensure Taskman Control
files match our UCI and Vol set </REM>

<REM>=======================================================================</REM>

 <REM> !!Note!!:  The TASKS file is in a different
format, so can't use [FileUtility] </REM>

 <M>set TaskL=$order(^%ZTSK(0))</M>    <REM>^%ZTSK()
is file TASKS </REM>
 <Jump label="StepD" condition='if TaskL=""'></Jump>
 <M>set RecNum=0</M>
 <M>set
F11="{{Data.Site.Values[TMG].Field[UCI]}}"</M>
 <M>set
F12="{{Data.Site.Values[TMG].Field[VolumeSet]}}"</M>
 <M>write "Scanning all tasks, setting UCI,Volset to
'",F11,",",F12,"'",!</M>
 <Label>Loop3</Label>
 <M>set RecNum=$order(^%ZTSK(RecNum))</M>
 <M>write "."</M>
 <Jump label="StepC2" condition='if
RecNum=""'></Jump>
 <M>kill ^%ZTSK(RecNum,.02)</M>
 <M>set $P(^%ZTSK(RecNum,0),"^",11)=F11</M>
 <M>set $P(^%ZTSK(RecNum,0),"^",12)=F12</M>
 <Jump label="Loop3"></Jump>
 <Label>StepC2</Label>
 <M>kill F11,F12</M>
 <M>write !,"Scan completed.",!</M>


<REM>=======================================================================</REM> <Label>StepD</Label> <REM> Clear nodes in VA Taskman schedule file recording volume set names and CPU name </REM>

<REM>=======================================================================</REM>

 <M>kill Answers</M>
 <M>set Answers("SILENT-INPUT")=1</M>
 <M>set Answers("SILENT-OUTPUT")=0</M>
 <M>set Answers("CONTINUE")="Y"</M>
 <M>set Answers("SUBMANAGERS")="Y"</M>

 <Show>Calling routine to shutdown Taskman</Show>
 <M>do STOP^TMGMKU(.Answers)</M>    <REM> used to be:
do STOP^ZTMKU </REM>

 <M>kill ^%ZTSCH("MON")</M>
 <M>kill ^%ZTSCH("STOP")</M>
 <M>kill ^%ZTSCH("SUB")</M>


<REM>TEMP... SKIP Scanning for device limitations</REM> <Jump label="StepF" condition="if 1=0"></Jump>

<REM>=======================================================================</REM>
 <Label>StepE</Label>
   <REM> Ensure that there is no limitations for
devices to run only on given CPU's </REM>
   <REM>Here we set VOLUME SET(CPU) TO "" for all
records </REM>

<REM>=======================================================================</REM>

 <FileUtility File="DEVICE"
OutVar="MyOutVar"></FileUtility>
 <M>set RecNum=$get(MyOutVar("FIRSTREC"))</M>
 <M>write "Scanning all devices, removing any CPU
limitations: "</M>
 <Label>Loop4</Label>
 <M>write "."</M>
 <Jump label="StepE2" condition='if
RecNum=""'></Jump>
 <FileUtility File="DEVICE" Fn="set" Field="VOLUME
SET(CPU)" RecNum="{{MVar.RecNum}}"
    Value="" OutVar="MyOutVar"></FileUtility>
 <M>set RecNum=$get(MyOutVar("NEXTREC"))</M>
 <Jump label="Loop4"></Jump>
 <Label>StepE2</Label>
 <M>write !,"Scan completed.",!</M>


<REM>=======================================================================</REM> <Label>StepF</Label> <REM>Here we ensure only ONE record in TASKMAN SITE PARAMETERS file</REM>

<REM>=======================================================================</REM>

 <M>set File="TASKMAN SITE PARAMETERS"</M>   <REM>set
up global for subroutine</REM>
 <M>set SubReturnPoint="StepF2"</M>    <REM>set up
where subroutine should return to</REM>
 <M>set TargetNum=1</M>
 <Jump label="Sub-DeleteRecs"></Jump>   <REM>This
will act as a subroutine, returns FirstRec</REM>
 <Label>StepF2</Label>
 <M>set TSRecNum=FirstRec</M>    <REM>This is the rec
num we'll put our info into </REM>

   <REM> Now put back in the record(s) we want </REM>
 <UploadRecord id="TaskmanParams">Uploading TASKMAN
SITE PARAMETERS record</UploadRecord>


<REM>=======================================================================</REM>


<REM>=======================================================================</REM> <Label>StepG</Label> <REM>Here we ensure only ONE record in MAILMAN SITE PARAMETERS file</REM>

<REM>=======================================================================</REM>

 <M>set File="MAILMAN SITE PARAMETERS"</M>   <REM>set
up global for subroutine</REM>
 <M>set SubReturnPoint="StepG2"</M>    <REM>set up
where subroutine should return to</REM>
 <M>set TargetNum=1</M>
 <Jump label="Sub-DeleteRecs"></Jump>   <REM>This
will act as a subroutine, returns FirstRec</REM>
 <Label>StepG2</Label>
 <M>set MMRecNum=FirstRec</M>    <REM>This is the rec
num we'll put our info into </REM>

   <REM> Now put back in the record(s) we want </REM>
 <Show>Removing input transform (a restriction) on
MAILMAN SYSTEM PARAMETERS, field .01</Show>
 <M>set TMGixfrm=$piece(^DD(4.3,.01,0),"^",5)</M>
 <M>set $piece(^DD(4.3,.01,0),"^",5)="" ;(was S
DINUM=1)</M>
 <UploadRecord id="MailmanParams">Uploading MAILMAN
SITE PARAMETERS record</UploadRecord>
 <Show>Restoring restriction on MAILMAN SYSTEM
PARAMETERS, field .01</Show>
 <M>set $piece(^DD(4.3,.01,0),"^",5)=TMGixfrm </M>


<REM>=======================================================================</REM> <Label>StepI</Label> <REM>Erase ALL PRIOR RECORDS in KERNEL SYSTEM PARAMETERS</REM>

<REM>=======================================================================</REM>

<M>set File="KERNEL SYSTEM PARAMETERS"</M> <REM>set up global for subroutine</REM>
<M>set SubReturnPoint="StepI2"</M> <REM>set up
where subroutine should return to</REM>
<M>set TargetNum=0</M>
<Jump label="Sub-DeleteRecs"></Jump> <REM>This
will act as a subroutine, returns FirstRec</REM>
<Label>StepI2</Label>


<REM> Now put back in the record(s) we want </REM>
<Show>Removing input transforms (restrictions) on
KERNAL SYSTEM PARAMETERS</Show>
<M>set TMGixfrm=$piece(^DD(8989.3,.01,0),"^",5) ;"S
DINUM=1"</M>
<M>set $piece(^DD(8989.3,.01,0),"^",5)=""</M> <REM> remove .01 input transform </REM>
<M>set TMG2ixfrm=$piece(^DD(8989.3,214,0),"^",5)</M>
<REM> relax field 214/verify-code-lifetime input
transform </REM>
<M>set temp="K:+X'=X!(X>3650)!(X'>0)!(X?.E1"".""1.N)
X"</M>
<M>set $piece(^DD(8989.3,.01,0),"^",5)=temp</M>
<UploadRecord id="KernelParams">Uploading KERNAL
SYSTEM PARAMETERS</UploadRecord>
<Show>Restoring restriction on KERNAL SYSTEM
PARAMETERS</Show>
<M>set $piece(^DD(8989.3,.01,0),"^",5)=TMGixfrm </M>
<M>set $piece(^DD(8989.3,214,0),"^",5)=TMG2ixfrm</M>


<REM>=======================================================================</REM>
 <Label>StepJ</Label> <REM>Here we erase ALL PRIOR
RECORDS in RPC BROKER PARAMETERS</REM>

<REM>=======================================================================</REM>

<M>set File="RPC BROKER SITE PARAMETERS"</M> <REM>set up global for subroutine</REM>
<M>set SubReturnPoint="StepJ2"</M> <REM>set up
where subroutine should return to</REM>
<M>set TargetNum=0</M>
<Jump label="Sub-DeleteRecs"></Jump> <REM>This
will act as a subroutine, returns FirstRec</REM>
<Label>StepJ2</Label>


   <REM> Now put back in the record(s) we want </REM>
 <Show>Removing input transform (a restriction) on
RPC BROKER SITE PARAMETERS, field .01</Show>
 <M>set TMGixfrm=$piece(^DD(8994.1,.01,0),"^",5)</M>
 <M>set $piece(^DD(8994.1,.01,0),"^",5)="" ;(was S
DINUM=1)</M>
   <REM> Below is the key to get through 8994.17
(Listener multiple) input transform </REM>
 <M>set XWBCHK="I KNOW WHAT I'M DOING"</M>
   <REM>set
TMG2ixfrm=$piece(^DD(8994.17,.01,0),"^",5,99)</REM>
   <REM>set $piece(^DD(8994.17,.01,0),"^",5)="K
DIC(""S"") D ^DIC K DIC S DIC=DIE,X=+Y K:Y'>-1
X"</REM>
 <UploadRecord id="RPCBrokerParams">Uploading RPC
BROKER SITE PARAMETERS record</UploadRecord>
 <Show>Restoring restriction on RPC BROKER SITE
PARAMETERS, field .01</Show>
 <M>set $piece(^DD(8994.1,.01,0),"^",5)=TMGixfrm </M>
   <REM>set
$piece(^DD(8994.17,.01,0),"^",5)=TMG2ixfrm </REM>
 <M>kill XWBCHK</M>









__________________________________ Do you Yahoo!? Read only the mail you want - Yahoo! Mail SpamGuard. http://promotions.yahoo.com/new_mail



------------------------------------------------------- This SF.Net email is sponsored by: IntelliVIEW -- Interactive Reporting Tool for open source databases. Create drag-&-drop reports. Save time by over 75%! Publish reports on the web. Export to DOC, XLS, RTF, etc. Download a FREE copy at http://www.intelliview.com/go/osdn_nl _______________________________________________ Hardhats-members mailing list Hardhats-members@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/hardhats-members




-- Greg Kreis http://www.PioneerDataSys.com

"You are today where your thoughts have brought you, you will
  be tomorrow where your thoughts take you." (James Lane Allen)



-------------------------------------------------------
This SF.Net email is sponsored by: IntelliVIEW -- Interactive Reporting
Tool for open source databases. Create drag-&-drop reports. Save time
by over 75%! Publish reports on the web. Export to DOC, XLS, RTF, etc.
Download a FREE copy at http://www.intelliview.com/go/osdn_nl
_______________________________________________
Hardhats-members mailing list
Hardhats-members@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/hardhats-members

Reply via email to