ARTIVA RM

child pages:

File Formats
File Processing Runs
Record Formats

page index:
Activity History table     ARACTIVITYHIST
Audit table searching
batches - new business batch to see placements after fpr
Cancel an account
debug file setup
Element Types
Enitity Table     ARENTITY
Entity Table History ARENHIST
File Locks on Scripts - Removing
killing an infinite loop script
letters
Notes including Relationship Notes,
null strings vs empty strings
Script & Scripting bugs in Artiva
Searching and Users Index use
Statuses
Tables and Fields
Unpromotable Elements

parameter order in PREFACED document I created: param name data type return value default  optional
parameter order in workstation: param name  data type  default  return value  optional

RM & HCX Schedule History:
System Management -> Night Job Management -> Workstation Schedule Maintenance -> Print Schedule History

RM Job Definitions and schedules:
System Management -> Night Job Management -> Workstation Schedule Maintenance -> Schedule Job Definitions
System Management -> Night Job Management -> Workstation Schedule Maintenance -> Job Scheduler

HCX Job Definitions and schedules:
System Management -> Night Job Management -> Workstation Schedule Maintenance -> Maintain Job Definitions
System Management -> Night Job Management -> Workstation Schedule Maintenance -> Artiva Schedule Manager


Activity History table ARACTIVITYHIST

-- FIND AN ENTRY GIVEN A DATE AND TIME

-- TAKES 24 SECONDS WITH UNKNOWN ARACTHRELID 
-- TAKE 1/4 SECOND WITH KNOWN ARACTHRELID
-- FROM 106858
SELECT ARRELENID,
ARACTHRELID,
ARACTHACCTID,
ARACTHDTE, 
ARACTHTIME,
ARACTHRESDISP,
ARACTHRESID,  
* 
FROM ARACTIVITYHIST
JOIN ARRELATIONSHIP ON ARACTHRELID = ARRELATIONSHIP.ARRELID
WHERE 
/*ARACTHRELID IN (57480594, 57480596) 
AND */ ARACTHDTE = {d "2024-04-18"}
AND ARACTHTIME	= '15:33:47'
and ARACTHRESDISP = 'ACAANSHU (ACA - Answered Hangup)'
AND ARACTHRESID	= 'ACAANSHU'
AND ARACTHACTID = "ACA"
ORDER BY ARACTIVITYHIST.ARACTHTIME


-- TAKES 
 

 

 


 

Audit table searching

-- FIND ALL STATUSES FOR A GIVEN ARACID BY LOOKING IN AUDIT TABLE 
SELECT 
STAUDKEY,
STAUDDATE,
STAUDFLDNAME,
STAUDOLDVAL,
ARRELRLCLASSID
FROM STFIELDAUD
JOIN ARRELATIONSHIP on ARRELATIONSHIP.ARRELID = STAUDKEY
WHERE STAUDFLDNAME = "ARRELSTATUSID"
AND STAUDKEY IN
(
SELECT
ARRELID
FROM ARRELATIONSHIP
WHERE
ARRELACID = 30220096
AND
ARRELRLCLASSID in ('ARACCTMGT', 'ARACCTHOLDR')
)
;
--from ticket 105942 SELECT * FROM STFIELDAUD WHERE STAUDFLDNAME = "ARENADR" AND ( STAUDKEY = 35647887 /* ENTITY ID */ OR STAUDKEY = 64395298 )

 

 


 

batches - new business batch to see placements after fpr

Run -> Run History  click Start Date link

General -> Run History Files

General->Email to get new busines [sic] batch id

seach/command "# ess bal" finds " New Business Balance Report."

 

Help: Account Management > New Business > Balancing New Business Batches > How to Balance a New Business Batch


Cancel an Account

In the interface, it is more convenient to use Perform Action->S->CANC (as it prompts for Cancel Code = ARCANCID) than ARCANC (which I suspect was delivered).
Note that CANC won't appear in the list of choices if account is already in status INACTCANCEL

 

 

 


debug file setup

fDebugFile As syFile
fDebugPath as chr
fDebugFileName As Chr

set fDebugPath = "\\" ' NO TRAILING BACKSLASH
Set fDebugFileName = fDebugPath _ "\rbdebug_" _ SYNAMESPACE _ "_" _ $$FMTDATE($$TODAY(),"YYYYMMDD",6) _ "_" _$$FMTTIME($$NOW(),"HHMM") _ ".txt"
Call fDebugFile.Append(fDebugFileName)
Call fDebugFile.Write(SYCR_SYLF_ SYCR_SYLF_ SYCR_SYLF_ $$FMTTIME($$NOW(), "HH:MM:SS ") _ "STARTING [SYLBNAME] " _ SYCR_SYLF) 'FOR ARACID <"_ $$FILEPROC.GETKEY("ARACCOUNT")_ ">"_ SYCR_SYLF)

Call fDebugFile.Write($$FMTTIME($$NOW(), "HH:MM:SS ") _ "[message here]" _ SYCR _ SYLF)


Element Types

table STELEMENT

SELECT
STELCODE
,STELDESC
,*
FROM STELEMENT


Enitity Table ARENTITY


-- FIND ALL ACTIVE ACCOUNTS FOR A GIVEN ARENID / ARACRPID / ARRELENID
SELECT
ARACID
, ARACRPID
,ZZACRTNCANCID
,ARRELRLCLASSID
,ARRELPHASE
,ARRELSTATUSID
FROM araccount
JOIN ARRELATIONSHIP on ARRELACID = ARACCOUNT.ARACID
WHERE ARACRPID IN (15221300 , 16456938) /*ARENID AKA ARRELENID*/
AND ARRELRLCLASSID = 'ARACCTHOLDR'
AND NOT (ARRELPHASE = 'INACTIVE')


Entity Table History ARENHIST


-- ARENHDTE	"History Create Date" IS NOT THE DATE THE ARENHIST RECORD WAS CREATED (IT APPEARS THAT DATE IS NOT STORED)
-- ARENHDTE IS THE DATE THE INFORMATION STORED IN THE RECORD WAS ACQUIRED BY USCB OR SIMILAR 
SELECT 
ARENHSETID, 
ARENHDTE, 
ARENHPH, 
* 
FROM ARENHIST
WHERE
/* -- ARENHACID NOT INDEXED, USE ARENHENID */
ARENHENID IN 
( 
	SELECT ARACRPID 
	FROM ARACCOUNT
	WHERE
	ARACID = 42463639
) 

;

 

 

 


File Locks on Scripts - Removing

Studio crashed on me and now when I open the element I was previously working on it will only open as read only. Two Finvi tech support people don't know how to resolve it and are consulting with third Finvi person. Does anyone know if we can fix it ourselves or do we need to have them fix it?

To resolve: Go into the 'users in namespace' menu in Workstation find your process ids that are locks, then go to system status in Cache dashboard, pick the namespace, then terminate those process ids

Alternately, I think if you search Lock Table in Workstation you can find the window lock and remove it that way


Killing an infite loop in a script

~2023-08-10 accidently put the wrong variable name in a while loop and it went into an infinite loop
it was writing data to the hard drive at an alarming rate
I went to the Cache control panel and went to Processes but I couldn't figure out which was mine

Deandre helped me to determine which it was
filter the list by namespace
basically, finding the pid to kill is a process of elimination - rule out workflow stuff, etc
i think i can further narrow it down by searching for the ip address of my vdi
Deandre said it will be the one that has the fastest growing values for database references, etc.

 


 

letters

validation letter (e.g. "G01") federally mandated by Consumer Financial Protection Board; bad debt collections letter before collections activities can start

goodbye letter is letter mandated in California by AB1020 to be sent out by a hospital before the validation letter alerting patient or debtor that charity care is sometimes available. This is the hospital's responsibility, but some pay us to do it. Others send us a letter package that we parse in a 3rd gen language that checks (maybe writes to?) the aracdocs table

Revspring is our vendor that does what I think of as the mail merge portion of letter creation. aka "link service". We can't only see the value of the fields that will be inserted in the letter, not the text of the letter itself as that is in Revspring's system and not Artiva

After requesting a letter in an account, search "letter" in workstation-> "Create Letter Batch". Enter "N" in "Batch" and hit tab to autoincrement. Select the letter of interest for "Letter Code" and today for "through date". Table and Letter Form have only one possible value. Save the batch, start the letter batch when prompted and prin the letter batch when prompted. At "select device" choose "file" then "report format" and enter a filename such as c:\temp\somefname where the file will be saved on the development server at ...\C$. The file contains the values that will be inserted in the mail merge.


Notes

Relationship Notes

SELECT 
ARRELNOTES,
NOTE_CNT,
NOTE_DATE,
NOTE_TIME,
NOTE_TYPE,
NOTE_USER
FROM ARRELATIONSHIP_ARRELNOTES
JOIN ARRELATIONSHIP ON ARRELATIONSHIP_ARRELNOTES.ARRELID = ARRELATIONSHIP.ARRELID
WHERE ARRELACID = 42463639
ORDER BY NOTE_DATE ASC, NOTE_TIME ASC

 

 


 

null strings vs empty strings

' A STRING NEVER ASSIGNED A VALUE AND A STRING ASSIGNED TO "" ARE EQUAL IN ARTIVA
Begin Declare
               sTemp As Chr

End Declare
Begin Main
              
             Print "sTemp unassigned"
               If (sTemp <> "") Then
                              Print "not equal is true, would write C"
               Else
                              Print "not equal is false, would not write C"
               End If
              
               Set sTemp = "test"
               Print "sTemp = test"
               If (sTemp <> "") Then
                              Print "not equal is true, would write C"
               Else
                              Print "not equal is false, would not write C"
               End If
              
               Set sTemp = ""
               Print "sTemp = empty string"
               If (sTemp <> "") Then
                              Print "not equal is true, would write C"
               Else
                              Print "not equal is false, would not write C"
               End If
              
End Main


Script & Scripting bugs in Artiva

2023-03-29 particularly hard to find because the query works in DBeaver but not in Artiva (at least in API we use to send commands from c#):
two c style comments in a row

SELECT TOP 1 ARACID
/* COMMENT 1 */
/* COMMENT 2 */
FROM ARACCOUNT

 


Searching and User Index use

Query on the Fly loop results


'ZZRJB105658

Begin Declare
	zzQuery As ARSQL   'syQuery    syQuery is only to run system queries - use ARSQL if building SQL Statement on the fly
	zzsQuery As Chr
	zzCurAFClient As Chr
	
	zzClientFinRec As sytabrec.AFCLIENT
	zzClientID As Chr
	
End Declare

Begin Main
	
	Set zzsQuery =            "SELECT ARCLID, AFCLINSI, AFCLKEY FROM ARCLIENT "
	'MAKE SURE THERE IS AT LEAST ONE SPACE BETWEEN END OF ONE LINE AND START OF NEXT
	Set zzsQuery = zzsQuery _ " JOIN ARCLTSET ON ARCLIENT.ARCLSETID = ARCLTSET.ARCLTSID "
	Set zzsQuery = zzsQuery _ " JOIN AFCLIENT ON AFCLIENT.AFCLKEY = ARCLIENT.ARCLFINCLTID "
	Set zzsQuery = zzsQuery _ " WHERE UPPER(ARCLTMASTERCLID) = 'IDENTIFIER_HERE'"
	
	
	Call zzQuery.Execute(zzsQuery)
	
	' DETERMINE IF ACCOUNT ID ALREADY IN TABLE AND BAIL IF SO
	' DO NOT USE FOR ARSQL -> 'If (Not $$BLANK($$zzQuery.Next()) ) Then   ' THIS IS WRONG FOR ARSQL AS .Next never returns BLANK
	Call zzQuery.Next()
	Set zzCurAFClient = $$zzQuery.Get("AFCLKEY")
	Print "zzCurAFClient <" _ zzCurAFClient_ ">"
	
	While (Not $$BLANK(zzCurAFClient))
		Set zzClientFinRec.AFCLKEY = zzCurAFClient
		Set zzClientFinRec.AFCLINSI = "N"
		Call zzClientFinRec.Write()
		
		Set zzClientID = $$zzQuery.Get("ARCLID")
		
		Print zzClientID _ "     " _  zzCurAFClient
		Call zzQuery.Next()
		Set zzCurAFClient = $$zzQuery.Get("AFCLKEY")
	End While
	
	
	
End Main

Query on the Fly 1 result

Use ARSQL for query on the fly (as opposed to SYQUERY for one that uses a system query)

Begin Declare
               zzQuery As ARSQL   'syQuery    syQuery is only to run system queries - use ARSQL if building SQL Statement on the fly
               zzsQuery As Chr
               zzQueryGetVal As Chr
End Declare

Begin Main
               Set zzsQuery = "SELECT ARACID FROM ARACCOUNT WHERE ARACCLACCT= '" _ "THECLIENTREF" _ "'"
               Call zzQuery.Execute(zzsQuery)
              
               ' DETERMINE IF ACCOUNT ID ALREADY IN TABLE AND BAIL IF SO
              ' DO NOT USE FOR ARSQL -> 'If (Not $$BLANK($$zzQuery.Next()) ) Then   ' THIS IS WRONG FOR ARSQL AS .Next never returns BLANK
               Call zzQuery.Next()
               Set zzQueryGetVal = $$zzQuery.Get("ARACID")
               If (Not $$BLANK(zzQueryGetVal) ) Then
                              Print "FOUND ACCOUNT"
                              Print "key is <" _ zzQueryGetVal _ ">"
               Else       
                              Print "DID NOT FIND ACCOUNT"
               End If
End Main

 

 

User Index

' generalized from ZZFINDACCOUNT
MyIndex as syIndex.zzMyIndexName

Set MyIndex.ZZACCLTMASTERCLID = "field 1 value"
Set MyIndex.ARACCLACCT = "field 2 value"
Set MyIndex.ARACID = ""

While (Not $$(BLANK($$MyIndex.Next("ARACID"))))
    Set AcctRec.ARACID = MyIndex.ARACID
End While


STATUSES

see the audit table example for finding the audited ARRELSTATUSID field


Tables and Fields

-- tables
SELECT 
UFTABLE,
STTABLES.UTDESC AS TABLE_DESCRIPTION,
UFVAR,
UFDESC,
UFTYPE,
UFLEN,
UFKEY,
UFINDEX,
"REST ARE SPLAT",
*
FROM STUFLDS
JOIN STTABLES ON UDTABCD = UFTABLE
WHERE
UFTABLE LIKE  "%%"
AND
-- WITH FINDTHIS IN THE FIELD NAME OR DESCRIPTION
UPPER(UFVAR) LIKE "%%" 
-- INDEX OR KEY
--AND ((UFINDEX = "Y") OR (UFKEY = "Y"))
ORDER BY STUFLDS.UFTABLE,STUFLDS.UFVAR


Unpromotable Elements

incomplete list :

FSLOC location
? file processing runs
   
   
   

 


?            file processing runs


 

last updated:    Thu 2024-08-08 1:41 PM