passing values between PH Web screens

Deskin, Bob Bob.Deskin@Cognos.COM
Fri, 22 Jun 2001 15:04:02 -0400


You say that this used to work. Of course the first question is "What
changed?". I did notice that there's no PH_ACTION in either link. Depending
on the code, this may or may not be a problem.

Other than that if screens B and C can't find the appropriate records then
check two areas. First, make sure that the appropriate data is being passed
in the link and in the request. You may want to turn on logging to check the
actual request string. Second, make sure that B and C are actually picking
up the values from the request. Check your default procedures (PATH and
SELECT) by doing a BUILD LIST.

Bob Deskin              
PowerHouse Web Product Manager, Application Development Tools, Cognos Inc.
bob.deskin@cognos.com (613) 738-1338 ext 7268 FAX: (613) 727-1178
3755 Riverside Drive P.O. Box 9707 Stn. T, Ottawa ON K1G 4K9 CANADA

-----Original Message-----
From: Edis, Bob [mailto:bob.edis@fleetpride.com]
Sent: Thursday, June 21, 2001 5:07 PM
To: 'powerh-l@list.swau.edu'
Subject: passing values between PH Web screens


G'day all

Environment:
PH Web 2.21D3
PH 4GL 8.21D4
Windows NT 4.0 sp6
MS SQL Server 7.0 sp3
IIS 4.0

We have a problem with passing values to a web screen that some out there
may be able to identify for us.

Screen A: a table of 10 rows displaying invoice records.  The left most
column is a link to screen B (partial pay) and the right most column is a
link to screen C (full pay).
Screen B: displays the selected invoice and allows the user to enter the
amount being paid on the invoice.
Screen C: acts as a ghost screen.  The POSTFIND procedure handles all the
data updating using procedural code.

Problem:  this used to work fine.  However, now when either screen is
selected, the invoice record is not found.  Instead I am left with an empty
screen and the error message "No records were found matching index/selection
values." in the screen B case and an empty default PHWeb screen page in the
screen C case.
The screen B call in screen A is:
<A
HREF="/cgi-bin/phcgi.exe?PH_HTML=pc_post_payment.htm&amp;PH_QKC=pc_post_paym
ent&amp;PH_APP=CORPCUST_APP&amp;PH_SEARCH=t_sort_date_d%3D%3DY*-*-*T_CHECK_K
EY%3D%3D2*-*-*T_AMOUNT_OPEN%3D%3D77.48*-*-*T_AMOUNT_APPLIED%3D%3D0*-*-*T_CHE
CK_AMOUNT%3D%3D77.48*-*-*T_CHECK_DATE%3D%3D04/05/01*-*-*T_CHECK_NBR%3D%3D000
077196*-*-*POST_INVOICE:Corp_cust_id%3D%3D50&amp;PH_ACTION=Search&amp;T_SEAR
CH_THREAD=t_sort_date_d%3D%3DY*-*-*T_CHECK_KEY%3D%3D2*-*-*T_AMOUNT_OPEN%3D%3
D77.48*-*-*T_AMOUNT_APPLIED%3D%3D0*-*-*T_CHECK_AMOUNT%3D%3D77.48*-*-*T_CHECK
_DATE%3D%3D04/05/01*-*-*T_CHECK_NBR%3D%3D000077196*-*-*POST_INVOICE:Corp_cus
t_id%3D%3D50&amp;T_PH_LOADID=&amp;T_INVOICE_NBR=211710031&amp;T_CORP_CUST_ID
=50&amp;T_INVOICE_AMOUNT=57.24&amp;POST_PAYMENT:amount=57.24&amp;POST_PAYMEN
T:Corp_cust_id=50&amp;POST_PAYMENT:Invoice_nbr=211710031&amp;T_CUSTOMER_KEY=
25307&amp;T_CHECK_KEY=2&amp;T_SORT_INV_NBR=&amp;T_SORT_PO_NBR=&amp;T_SORT_AM
OUNT=&amp;T_SORT_INV_NBR_D=&amp;T_SORT_PO_NBR_D=&amp;T_SORT_AMOUNT_D=&amp;T_
INVOICE_KEY=49113">Partial Pay     </A>
The screen C call in screen C is:
<A
HREF="/cgi-bin/phcgi.exe?PH_HTML=pc_post_payment_full.htm&amp;PH_QKC=pc_post
_payment_full&amp;PH_APP=CORPCUST_APP&amp;PH_SEARCH=t_sort_date_d%3D%3DY*-*-
*T_CHECK_KEY%3D%3D2*-*-*T_AMOUNT_OPEN%3D%3D77.48*-*-*T_AMOUNT_APPLIED%3D%3D0
*-*-*T_CHECK_AMOUNT%3D%3D77.48*-*-*T_CHECK_DATE%3D%3D04/05/01*-*-*T_CHECK_NB
R%3D%3D000077196*-*-*POST_INVOICE:Corp_cust_id%3D%3D50&amp;PH_ACTION=Search&
amp;T_SEARCH_THREAD=t_sort_date_d%3D%3DY*-*-*T_CHECK_KEY%3D%3D2*-*-*T_AMOUNT
_OPEN%3D%3D77.48*-*-*T_AMOUNT_APPLIED%3D%3D0*-*-*T_CHECK_AMOUNT%3D%3D77.48*-
*-*T_CHECK_DATE%3D%3D04/05/01*-*-*T_CHECK_NBR%3D%3D000077196*-*-*POST_INVOIC
E:Corp_cust_id%3D%3D50&amp;T_PH_LOADID=&amp;T_INVOICE_NBR=211710058&amp;T_CO
RP_CUST_ID=50&amp;T_INVOICE_AMOUNT=108.95&amp;POST_PAYMENT:amount=108.95&amp
;POST_PAYMENT:Corp_cust_id=50&amp;POST_PAYMENT:Invoice_nbr=211710058&amp;T_C
USTOMER_KEY=43430&amp;T_CHECK_KEY=2&amp;T_INVOICE_KEY=48846&amp;T_SORT_INV_N
BR=&amp;T_SORT_PO_NBR=&amp;T_SORT_AMOUNT=&amp;T_SORT_INV_NBR_D=&amp;T_SORT_P
O_NBR_D=&amp;T_SORT_AMOUNT_D=&amp;POST_INVOICE:INVOICE_KEY=48846">Full Pay
</A>
The POSTFIND procedure in screen C is:
PROCEDURE POSTFIND
;***** This custom procedure is designed to apply payment of the full 
;***** value of the selected invoice.
BEGIN
;** Read control_keys to get next key value for post_payment_key
  GET control_keys VIA control_key_key USING 1
  LET post_payment_key = post_payment_key + 1
  PUT control_keys

;** Write new post_payment record
  LET payment_key    OF post_payment = post_payment_key  
  LET check_nbr      OF post_payment = check_nbr     OF post_check
  LET check_key      OF post_payment = check_key     OF post_check
  LET invoice_key    OF post_payment = invoice_key   OF post_invoice
  LET branch_key     OF post_payment = branch_key    OF post_invoice
  LET amount         OF post_payment = amount        OF post_invoice
  LET invoice_nbr    OF post_payment = invoice_nbr   OF post_invoice
  LET customer_key   OF post_payment = customer_key  OF post_invoice
  LET customer_id    OF post_payment = customer_id   OF post_invoice
  LET source_system  OF post_payment = source_system OF post_invoice
  LET branch_id      OF post_payment = branch_id     OF post_invoice
  LET corp_cust_id   OF post_payment = corp_cust_id  OF post_invoice
  LET date_added     OF post_payment = SYSDATE
  LET post_code      OF post_payment = " "
  LET status         OF post_payment = "O"
  PUT post_payment

;** Update post_invoice record
  LET amount_applied OF post_invoice = &
      amount_applied OF post_invoice + &        
      amount         OF post_invoice 
  PUT post_invoice

;** Update post_check record
  GET alias_post_check VIA check_key USING t_check_key
  LET amount_applied OF alias_post_check = &
      amount_applied OF alias_post_check + &
      amount         OF post_invoice
  LET amount_open    OF alias_post_check = &
      amount_open    OF alias_post_check - &
      amount         OF post_invoice
  PUT alias_post_check

;** Take the user back to the calling screen automatically.  The user
;** should never actually see this screen.
  DEFER LINKSCREEN pc_select_invoice                         &  
        ACTION  "LoadPage"                                   &
        PASSING corp_cust_id AS "POST_INVOICE:Corp_Cust_id", &
                t_check_key  AS "t_check_key",               &
                t_flag,                                      &
                t_sort_inv_nbr,                              &
                t_sort_amount,                               &
                t_sort_po_nbr,                               &
                t_sort_inv_nbr_d,                            &
                t_sort_amount_d,                             &
                t_sort_po_nbr_d,                             &
                t_sort_date_a,                               &
                t_sort_date_d,                               &
                t_search_thread  AS "PH_SEARCH",             &
                t_ph_loadid      AS "PH_LOADID"
END

Any ideas?

Blue


= = = = = = = = = = = = = = = = = = = = = = = = = = = =
Mailing list: powerh-l@lists.swau.edu
Subscribe: "subscribe" in message body to powerh-l-request@lists.swau.edu
Unsubscribe: "unsubscribe" in message body to
powerh-l-request@lists.swau.edu
http://lists.swau.edu/mailman/listinfo/powerh-l
This list is closed, thus to post to the list you must be a subscriber.