cancel
Showing results for 
Search instead for 
Did you mean: 

How can I collect non-financial transactions in the B24POS record?

Support_Sydney
Moderator

How can I collect non-financial transactions in the B24POS record?

By default, PROGNOSIS does not collect non-financial transactions from the PTLF, nor does it collect transactions of type 500. However, some sites find it desirable to be able to report on this information.

1 ACCEPTED SOLUTION

Accepted Solutions
Support_Sydney
Moderator

Re: How can I collect non-financial transactions in the B24POS record?

By default, PROGNOSIS does not collect non-financial transactions from the PTLF, nor does it collect transactions of type 500. However, some sites find it desirable to be able to report on this information.
To set up PROGNOSIS POS Transaction Manager to count all financial AND non-financial transactions you need to:

Step 1 Edit the PTLFLIBS file located in the PROGNOSIS subvolume and change the line:

literal def^count^nonfinancial^1 = false^1;

to

literal def^count^nonfinancial^1 = true^1;

Step 2 Copy the PSDDLTAL file into the PROGNOSIS subvolume.
Step 3 Run MKPTLFLB to rebind the customized ptlflibs to the trawler.


If this fails to show transactions of type 500, the following additional change to PTLFLIBS maybe required:

1. A new line is added in the SOURCE section
?source psddltal(PTLF^SET^REC)

2. CHANGE literal def^count^nonfinancial^l = true^l;f^count^nonfinancial^l = true^l;

3. A new variable is defined in the function of "int proc PRGN^READ^PTLF(fnum,prgn^ptlf, user^def^fld, count^this)"
int .ptlf^set^rec(PTLF^SET^REC^DEF);

4. CHANGE the following part in the code 

else if bcnt^nonf and ((ptlf.head.rec^typ '=' "01" and ptlf.auth.typ '=' "05") or ptlf.head.rec^typ '<>' "01") then
begin
s^ptr[0] ':=' ["*"] & s^ptr[0] for $len(prgn^ptlf) - 1 bytes;
end

TO

else if bcnt^nonf and ptlf.head.rec^typ '=' "04" then
begin
s^ptr[0] ':=' [" "] & s^ptr[0] for $len(prgn^ptlf) - 1 bytes;
@ptlf^set^rec := @ptlf;
if ptlf^set^rec.SET^REC.SET^REC1.TYP '=' "0500" then
begin
prgn^ptlf.typ ':=' ptlf^set^rec.SET^REC.SET^REC1.TYP for
$min($len(prgn^ptlf.typ), 
$len(ptlf^set^rec.SET^REC.SET^REC1.TYP)*$occurs(ptlf^set^rec.SET^REC.SET^REC1.TYP));
end;
end

and then complete Steps 2 + 3 of the first procedure again.

View solution in original post

1 REPLY 1
Support_Sydney
Moderator

Re: How can I collect non-financial transactions in the B24POS record?

By default, PROGNOSIS does not collect non-financial transactions from the PTLF, nor does it collect transactions of type 500. However, some sites find it desirable to be able to report on this information.
To set up PROGNOSIS POS Transaction Manager to count all financial AND non-financial transactions you need to:

Step 1 Edit the PTLFLIBS file located in the PROGNOSIS subvolume and change the line:

literal def^count^nonfinancial^1 = false^1;

to

literal def^count^nonfinancial^1 = true^1;

Step 2 Copy the PSDDLTAL file into the PROGNOSIS subvolume.
Step 3 Run MKPTLFLB to rebind the customized ptlflibs to the trawler.


If this fails to show transactions of type 500, the following additional change to PTLFLIBS maybe required:

1. A new line is added in the SOURCE section
?source psddltal(PTLF^SET^REC)

2. CHANGE literal def^count^nonfinancial^l = true^l;f^count^nonfinancial^l = true^l;

3. A new variable is defined in the function of "int proc PRGN^READ^PTLF(fnum,prgn^ptlf, user^def^fld, count^this)"
int .ptlf^set^rec(PTLF^SET^REC^DEF);

4. CHANGE the following part in the code 

else if bcnt^nonf and ((ptlf.head.rec^typ '=' "01" and ptlf.auth.typ '=' "05") or ptlf.head.rec^typ '<>' "01") then
begin
s^ptr[0] ':=' ["*"] & s^ptr[0] for $len(prgn^ptlf) - 1 bytes;
end

TO

else if bcnt^nonf and ptlf.head.rec^typ '=' "04" then
begin
s^ptr[0] ':=' [" "] & s^ptr[0] for $len(prgn^ptlf) - 1 bytes;
@ptlf^set^rec := @ptlf;
if ptlf^set^rec.SET^REC.SET^REC1.TYP '=' "0500" then
begin
prgn^ptlf.typ ':=' ptlf^set^rec.SET^REC.SET^REC1.TYP for
$min($len(prgn^ptlf.typ), 
$len(ptlf^set^rec.SET^REC.SET^REC1.TYP)*$occurs(ptlf^set^rec.SET^REC.SET^REC1.TYP));
end;
end

and then complete Steps 2 + 3 of the first procedure again.