Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: XPDKEY

XPDKEY.m

Go to the documentation of this file.
  1. XPDKEY ;SFISC/RWF,RSD - Tools to work on KEYS ;9/21/95 13:47 [ 04/02/2003 8:29 AM ]
  1. ;;8.0;KERNEL;**1002,1003,1004,1005,1007**;APR 1, 2003
  1. ;;8.0;KERNEL;**5**;Jul 10, 1995
  1. Q
  1. ;XPDOLD=current Key name, XPDNEW=new Key name
  1. ;return 1 for success, 0 for failure
  1. RENAME(XPDOLD,XPDNEW) ;EF. Rename a Security Key
  1. Q:$D(XPDOLD)+$D(XPDNEW)'=2 0
  1. N DA,DIERR,DIK,XPD,XPDKEY,XPDI
  1. S XPDKEY=$O(^DIC(19.1,"B",XPDOLD,0)) Q:XPDKEY'>0 0
  1. S XPD(19.1,XPDKEY_",",.01)=XPDNEW D UPDATE^DIE("","XPD")
  1. I $D(DIERR) Q 0
  1. S XPDI=0,DA=XPDKEY,DIK="^VA(200,XPDI,51,",DIK(1)=.01
  1. F S XPDI=$O(^VA(200,"AB",XPDKEY,XPDI)) Q:'XPDI S DA(1)=XPDI D EN1^DIK
  1. D LOCKS(XPDOLD,XPDNEW)
  1. Q 1
  1. ;
  1. LOCKS(XPDOLD,XPDNEW) ;check file 19 for LOCKS and REVERSE/LOCK fields
  1. N XPD,XPDI,X,Y
  1. Q:$D(XPDOLD)+$D(XPDNEW)'=2
  1. S XPDI=0
  1. F S XPDI=$O(^DIC(19,XPDI)) Q:'XPDI S X=$G(^(XPDI,0)),Y=$G(^(3)) D:$L(X)
  1. .K XPD
  1. .S:$P(X,"^",6)=XPDOLD XPD(19,XPDI_",",3)=XPDNEW
  1. .S:$P(Y,"^")=XPDOLD XPD(19,XPDI_",",3.01)=XPDNEW
  1. .D:$D(XPD) UPDATE^DIE("","XPD")
  1. Q
  1. ;
  1. DEL(XPDA) ; Delete a key.
  1. N DA,DIK,XPD,XPDKEY,XPDI
  1. Q:'$D(^DIC(19.1,+$G(XPDA),0)) S XPDKEY=$P(^(0),"^")
  1. S XPDI=0,DA=XPDA
  1. F S XPDI=$O(^VA(200,"AB",XPDA,XPDI)) Q:'XPDI D
  1. . S DA(1)=XPDI,DIK="^VA(200,XPDI,51," D ^DIK
  1. . S DIK="^VA(200,XPDI,52," D ^DIK
  1. K DA S DA=XPDA,DIK="^DIC(19.1,"
  1. D ^DIK,LOCKS(XPDKEY,"@")
  1. Q
  1. ;
  1. LKUP(X) ;Lookup a in the KEY file.
  1. Q:'$L(X) ""
  1. I X?1N.NP Q $P($G(^DIC(19.1,X,0)),"^")
  1. Q $O(^DIC(19.1,"B",X,0))