nexg-erp / Forms
Refused
fmb_pay_supp_v1, study

all forms

fmb_pay_supp_v1: 21 programs convert in part

Shortest first. Left, the PL/SQL as the form holds it. Right, the clauses in the vocabulary’s spelling and, under them, each refused statement with the converter’s reason. 2 of them are program units, headed on unit: a unit’s refusals belong to the unit and are finished there once, and a caller that inlined one links to it rather than asking for the same work again.

1. fmb_pay_supp_v1KEY-NEXT-ITEM on SEARCH.SDOCNOstudy
What you haveKEY-NEXT-ITEM
go_item('Search.PB_Search');
execute_trigger('WHEN-BUTTON-PRESSED');
What you getClause Rule Language
on change of SDOCNO:    go to PB_SEARCH
# 1 statement did not convert.#   line 2
#   execute_trigger('WHEN-BUTTON-PRESSED');
#   reason: EXECUTE_TRIGGER is a Forms built-in, which no FormConnect document declares because no database holds it, and no program unit of this form declares one either, so there is no body to inline under the caller's point and item and nothing to bridge to

1 clause converted, 1 statement refused

2. fmb_pay_supp_v1KEY-NEXT-ITEM on SEARCH.SINVOICEstudy
What you haveKEY-NEXT-ITEM
go_item('Search.PB_Search');
execute_trigger('WHEN-BUTTON-PRESSED');
What you getClause Rule Language
on change of SINVOICE:    go to PB_SEARCH
# 1 statement did not convert.#   line 2
#   execute_trigger('WHEN-BUTTON-PRESSED');
#   reason: EXECUTE_TRIGGER is a Forms built-in, which no FormConnect document declares because no database holds it, and no program unit of this form declares one either, so there is no body to inline under the caller's point and item and nothing to bridge to

1 clause converted, 1 statement refused

3. fmb_pay_supp_v1on unit FN_GET_EARLY_DISCstudy
What you havePROGRAM-UNIT
FUNCTION fn_get_early_disc RETURN Number IS

v_Disc  Number;
BEGIN
  If :Frm_Early_Pay_Disc >0 and :T_Pay_Detail.Pay_Amt > 0 Then
     v_Disc := Round(:T_Pay_Detail.Pay_Amt * :Payd_Early_Pay_Disc_Perc/100,2);
  Else
    v_Disc := 0;
  End If;
  Return v_Disc;
  
END;
What you getClause Rule Language
on unit FN_GET_EARLY_DISC:
# 1 statement did not convert.#   line 10
#   Return v_Disc;
#   reason: this RETURN gives the local V_DISC, which 2 arms of one branch above it write, the last of them an Else, and the guards are not all an equality or an IN list on one name, so no decode says which arm ran: `:FRM_EARLY_PAY_DISC >0 AND :T_PAY_DETAIL.PAY_AMT > 0` asks a question a value pair cannot. What the function returns is therefore not stated

0 clauses converted, 1 statement refused

4. fmb_pay_supp_v1POST-QUERY on T_PAY_DETAILstudy
What you havePOST-QUERY
If :T_Pay_Detail.PayD_OS_Id Is Not Null Then
  SELECT Supp_Name 
  INTO :T_Pay_Detail.Supp_Name 
  FROM M_Supplier 
  WHERE Supp_Code=:T_Pay_Detail.PayD_Supp_Code;
  
  SELECT OS_Final_Txn_Code, OS_Doc_No, OS_Invoice_No, OS_Invoice_Due_Dt, Os_Invoice_Dt, Os_Divn_Code
  INTO :T_Pay_Detail.Os_Txn_Code, :T_Pay_Detail.Os_Doc_No, :T_Pay_Detail.OS_Invoice_No, :T_Pay_Detail.Os_Due_Dt,:T_Pay_Detail.OS_DOC_DT, :T_Pay_Detail.Payd_Divn_Code
  FROM T_OS 
  WHERE Os_Id=:T_Pay_Detail.PayD_OS_Id;
End If;
------/*Janisha*/-- To show the pay amount in query mode
If :T_Pay_Detail.PayD_DrCr_Flag = 'C' Then
  :T_Pay_Detail.Pay_Amt := :T_Pay_Detail.PayD_LC_Amt;
Else
  :T_Pay_Detail.Pay_Amt := :T_Pay_Detail.PayD_LC_Amt * -1;
End If;


----------Janisha on 26-05-2013 to populate into the currency rate in query mode----------------
If :T_Pay_Detail.Payd_Curr_Code Is Not Null Then
    Select Curr_Buying 
    Into :T_Pay_Detail.Payd_Curr_Rate 
    From M_Currency
    Where Curr_Code=:T_Pay_Detail.Payd_Curr_Code;
End If;
 Set_Record_Property(:System.Trigger_Record,:System.Trigger_Block,Status,Query_Status);

-----------------------
If :Payh_Supp_TT_Amt >0 Then
   :Load_Curr_Rate := ROund(:T_Pay_Detail.Tot_Pay_Amt /:PayH_Supp_TT_Amt,3);
End If;

--Os_Doc_Dt := C.Doc_Dt;
What you getClause Rule Language
on load of T_PAY_DETAIL:    from SUPPLIER(PAYD_SUPP_CODE) when is_filled(PAYD_OS_ID)
        # load-fmb-pay-supp-t-pay-detail-load-0    from OS(PAYD_OS_ID) when is_filled(PAYD_OS_ID)
        # load-fmb-pay-supp-t-pay-detail-load-1    from CURRENCY(PAYD_CURR_CODE) when is_filled(PAYD_CURR_CODE)
        # load-fmb-pay-supp-t-pay-detail-load-2    set SUPP_NAME to SUPPLIER.SUPP_NAME when is_filled(PAYD_OS_ID)    set OS_TXN_CODE to OS.OS_FINAL_TXN_CODE when is_filled(PAYD_OS_ID)    set OS_DOC_NO to OS.OS_DOC_NO when is_filled(PAYD_OS_ID)    set OS_INVOICE_NO to OS.OS_INVOICE_NO when is_filled(PAYD_OS_ID)    set OS_DUE_DT to OS.OS_INVOICE_DUE_DT when is_filled(PAYD_OS_ID)    set OS_DOC_DT to OS.OS_INVOICE_DT when is_filled(PAYD_OS_ID)    set PAYD_DIVN_CODE to OS.OS_DIVN_CODE when is_filled(PAYD_OS_ID)    set PAY_AMT to PAYD_LC_AMT when PAYD_DRCR_FLAG = 'C'    set PAY_AMT to PAYD_LC_AMT * -1 when not (PAYD_DRCR_FLAG = 'C')    set PAYD_CURR_RATE to CURRENCY.CURR_BUYING when is_filled(PAYD_CURR_CODE)    set LOAD_CURR_RATE to round(TOT_PAY_AMT / PAYH_SUPP_TT_AMT, 3) when PAYH_SUPP_TT_AMT > 0
# 1 statement did not convert.#   line 27
#   Set_Record_Property(:System.Trigger_Record,:System.Trigger_Block,Status,Query_Status);
#   reason: this sets a record's status, and the platform derives a record's status from its own baseline rather than being told it (the save path, item 99), so a statement that marks a queried record unchanged is refused rather than performed

11 clauses converted, 1 statement refused

5. fmb_pay_supp_v1WHEN-BUTTON-PRESSED on SEARCH.PB_SEARCHstudy
What you haveWHEN-BUTTON-PRESSED

DECLARE
   founditem   CHAR (1);
BEGIN
   founditem := 'N';
   GO_BLOCK ('Ctrl_Pay_Detail');
   FIRST_RECORD;

   LOOP
      IF TRIM (:search.sdocno) IS NOT NULL
      THEN
         IF TRIM (:ctrl_pay_detail.os_doc_no) LIKE
                                                  TRIM (:search.sdocno)
                                                  || '%'
         THEN
            founditem := 'Y';
            EXIT;
         END IF;
      ELSIF TRIM (:search.sinvoice) IS NOT NULL
      THEN
         IF TRIM (:ctrl_pay_detail.os_invoice_no) LIKE
                                                TRIM (:search.sinvoice)
                                                || '%'
         THEN
            founditem := 'Y';
            EXIT;
         END IF;
      END IF;

      EXIT WHEN :SYSTEM.LAST_RECORD = 'TRUE';
      NEXT_RECORD;
   END LOOP;

   :search.sdocno := '';
   :search.sinvoice := '';

   IF founditem = 'N'
   THEN
      show_message ('Msg_Alert', 'Finished Search;No Match Found');
      FIRST_RECORD;
   END IF;
END;
What you getClause Rule Language
on press of PB_SEARCH:    go to CTRL_PAY_DETAIL    set SDOCNO to ''    set SINVOICE to ''
# 2 statements did not convert.#   line 9
#   LOOP
#         IF TRIM (:search.sdocno) IS NOT NULL
#         THEN
#            IF TRIM (:ctrl_pay_detail.os_doc_no) LIKE
#                                                     TRIM (:search.sdocno)
#                                                     || '%'
#            THEN
#               founditem := 'Y';
#               EXIT;
#            END IF;
#         ELSIF TRIM (:search.sinvoice) IS NOT NULL
#         THEN
#            IF TRIM (:ctrl_pay_detail.os_invoice_no) LIKE
#                                                   TRIM (:search.sinvoice)
#                                                   || '%'
#            THEN
#               founditem := 'Y';
#               EXIT;
#            END IF;
#         END IF;
#   
#         EXIT WHEN :SYSTEM.LAST_RECORD = 'TRUE';
#         NEXT_RECORD;
#      END LOOP;
#   reason: nothing in it converts to a clause, so what it did per row is not recorded#   line 37
#   If founditem = 'N' Then
#     show_message ('Msg_Alert', 'Finished Search;No Match Found');
#     FIRST_RECORD;
#   End If;
#   reason: the guard reads the local FOUNDITEM, which a loop body above it writes, so what it holds here depends on which iteration ran last

3 clauses converted, 2 statements refused

6. fmb_pay_supp_v1WHEN-VALIDATE-ITEM on T_PAY_HEAD.PAYH_SUPP_CODEstudy
What you haveWHEN-VALIDATE-ITEM
--If :Load_Supp_Code Is Null Then
If :Load_Supp_Code Is NOT  Null Then
  SELECT Supp_Name, Supp_Cr_Days, Supp_Email
  INTO :Load_Supp_Name, :Load_Supp_Cr_Days, :Load_Supp_Email
  FROM M_Supplier 
  WHERE Supp_Code=:Load_Supp_Code;
  
  :PayH_Desc2 := 'Settlement of bills upto ' || To_Char(:PayH_Process_Dt-:Load_Supp_Cr_Days, :Global.DateFormat);

    ------------25-05-2013-------------------------
  /*  If :parameter.Supp_Active Is not Null Then
   If  :Load_Supp_Code<>:parameter.Supp_Active Then
      :parameter.Supp_Active:=:Load_Supp_Code;
     End If;
     End If;
     */--27-05-2013

  SELECT nvl(Supp_Cr_Days,0)
  INTO :Supp_Cr_Days
  FROM M_Supplier
  WHERE supp_code=:Load_Supp_Code;

  SELECT SUM(Nvl(Dr,0))-Sum(Nvl(Cr,0))
  INTO :Supp_Hold_Amt
  FROM(
        SELECT DECODE (os_drcr_flag, 'D', os_balance, 0) Dr,
                DECODE (os_drcr_flag, 'C', os_balance, 0) Cr
        FROM t_os
         WHERE os_comp_code = :Global.company
         AND os_main_acnt_code =:T_Pay_Head.Load_Supp_Code
         AND os_invoice_dt <=:T_Pay_Head.PayH_Process_Dt
         AND os_balance > 0
         AND NVL (os_hold, 'N') = 'Y');
End If;
-----------25-05-2013-----------------
If  :System.Form_Status <> 'Query' Then 
  If :Parameter.Supp_Active Is Not Null Then
    If :Payh_Sup_Tot<=0 Then
      Show_Message('Msg_Alert', 'Supplier '||:Parameter.Supp_Active ||' Failed Validation.Pay Amount Goes '||:Payh_Sup_Tot);
      Raise Form_Trigger_Failure;
    End If;
  End If;
End If;
--------------------------
What you getClause Rule Language
on change of PAYH_SUPP_CODE:    from SUPPLIER_0(LOAD_SUPP_CODE) when is_filled(LOAD_SUPP_CODE)
        # load-fmb-pay-supp-t-pay-head-payh-supp-code-when-validate-item-change-0    from SUPPLIER_1(LOAD_SUPP_CODE) when is_filled(LOAD_SUPP_CODE)
        # load-fmb-pay-supp-t-pay-head-payh-supp-code-when-validate-item-change-1    set LOAD_SUPP_NAME to SUPPLIER_0.SUPP_NAME when is_filled(LOAD_SUPP_CODE)    set LOAD_SUPP_CR_DAYS to SUPPLIER_0.SUPP_CR_DAYS when is_filled(LOAD_SUPP_CODE)    set LOAD_SUPP_EMAIL to SUPPLIER_0.SUPP_EMAIL when is_filled(LOAD_SUPP_CODE)    set PAYH_DESC2 to 'Settlement of bills upto ' || to_char(PAYH_PROCESS_DT - SUPPLIER_0.SUPP_CR_DAYS, GLOBAL.DATEFORMAT) when is_filled(LOAD_SUPP_CODE)    set SUPP_CR_DAYS to SUPPLIER_1.SUPP_CR_DAYS when is_filled(LOAD_SUPP_CODE)    deny when ((SYSTEM.FORM_STATUS <> 'Query') and is_filled(PARAMETER.SUPP_ACTIVE)) and (PAYH_SUP_TOT <= 0) else (('Supplier ' || PARAMETER.SUPP_ACTIVE) || ' Failed Validation.Pay Amount Goes ') || PAYH_SUP_TOT
# 2 statements did not convert.#   SELECT SUM(Nvl(Dr,0))-Sum(Nvl(Cr,0))
#     INTO :Supp_Hold_Amt
#     FROM(
#           SELECT DECODE (os_drcr_flag, 'D', os_balance, 0) Dr,
#                   DECODE (os_drcr_flag, 'C', os_balance, 0) Cr
#           FROM t_os
#            WHERE os_comp_code = :Global.company
#            AND os_main_acnt_code =:T_Pay_Head.Load_Supp_Code
#            AND os_invoice_dt <=:T_Pay_Head.PayH_Process_Dt
#            AND os_balance > 0
#            AND NVL (os_hold, 'N') = 'Y')
#   reason: its query has no WHERE clause, so nothing ties the row it reads to a value#   SELECT SUM(Nvl(Dr,0))-Sum(Nvl(Cr,0))
#     INTO :Supp_Hold_Amt
#     FROM(
#           SELECT DECODE (os_drcr_flag, 'D', os_balance, 0) Dr,
#                   DECODE (os_drcr_flag, 'C', os_balance, 0) Cr
#           FROM t_os
#            WHERE os_comp_code = :Global.company
#            AND os_main_acnt_code =:T_Pay_Head.Load_Supp_Code
#            AND os_invoice_dt <=:T_Pay_Head.PayH_Process_Dt
#            AND os_balance > 0
#            AND NVL (os_hold, 'N') = 'Y');
#   reason: the query they read is refused above, so a clause over it would read no row

6 clauses converted, 2 statements refused

7. fmb_pay_supp_v1WHEN-BUTTON-PRESSED on T_PAY_HEAD.PB_OTHstudy
What you haveWHEN-BUTTON-PRESSED
Declare
  v_Curr_Block VarChar2(30);
Begin
  If :Load_Supp_Code Is Not Null AND :Load_Supp_Bank_Code Is Not Null AND Nvl(:Load_Oth_Amt,0) <> 0 Then
    v_Curr_Block := :System.Current_Block;
  
   Go_Block('T_Pay_Detail');
   Set_Block_Property ('T_Pay_Detail', Insert_Allowed, Property_True);
   Set_Block_Property ('T_Pay_Detail', Delete_Allowed, Property_True);
   Last_Record;
   Next_Record;
    /*
    First_Record;
    Loop
      If :System.Last_Record='TRUE' Then
        Exit;
      End If;
      Next_Record;
    End Loop;    
    */
    If :Parameter.Supp_Active Is Not Null Then
      If :Load_Supp_Code<>:Parameter.Supp_Active Then
       :Parameter.Supp_Active:=:Load_Supp_Code;
      End If;
    Else
        :Parameter.Supp_Active:=:Load_Supp_Code;
    End If;
    
    :T_Pay_Detail.PayD_Supp_Code := :Load_Supp_Code;
    :T_Pay_Detail.PayD_Supp_Bank_Code := :Load_Supp_Bank_Code;
    :T_Pay_Detail.Supp_Name := :Load_Supp_Name;
    :T_Pay_Detail.PayD_Pay_Type := 'O';
    :T_Pay_Detail.PayD_Curr_Code := :Load_Curr_Code;
    :T_Pay_Detail.PayD_Curr_Rate := :Load_Curr_Rate;
    If Nvl(:Load_Oth_Amt, 0) > 0 Then
      :T_Pay_Detail.PayD_LC_Amt := :Load_Oth_Amt;
      :T_Pay_Detail.PayD_Fc_Amt := :Load_Oth_Amt/Nvl(:T_Pay_Detail.PayD_Curr_Rate,0);
      :T_Pay_Detail.PayD_DrCr_Flag := 'C';
    Else
      :T_Pay_Detail.PayD_LC_Amt := Abs(:Load_Oth_Amt);
      :T_Pay_Detail.PayD_Fc_Amt := Abs(:Load_Oth_Amt)/Nvl(:T_Pay_Detail.PayD_Curr_Rate,0);
      :T_Pay_Detail.PayD_DrCr_Flag := 'D';
    End If;
    :T_Pay_Detail.PayD_Flag := 'M';
    :T_Pay_Detail.PayD_Cr_USer:= :Global.User;
    :T_Pay_Detail.PayD_Cr_Dt := SysDate;
    :Load_Oth_Amt := 0;
   
    :Parameter.Oth :='Y';
    Set_Item_Property('PB_Load', Enabled, Property_False);
    Set_Item_Property('PB_Manual_Load', Enabled, Property_False);
  End If;
End;  
What you getClause Rule Language
on press of PB_OTH:    when (is_filled(LOAD_SUPP_CODE) and is_filled(LOAD_SUPP_BANK_CODE)) and (nvl(LOAD_OTH_AMT, 0) <> 0)
# 3 statements did not convert.#   line 23
#   :Parameter.Supp_Active:=:Load_Supp_Code;
#   reason: set writes a field or a global and there is no third spelling, so a write to a form parameter is refused: item 20 rules a parameter read-only#   line 26
#   :Parameter.Supp_Active:=:Load_Supp_Code;
#   reason: set writes a field or a global and there is no third spelling, so a write to a form parameter is refused: item 20 rules a parameter read-only#   line 49
#   :Parameter.Oth :='Y';
#   reason: set writes a field or a global and there is no third spelling, so a write to a form parameter is refused: item 20 rules a parameter read-only

1 clause converted, 3 statements refused

8. fmb_pay_supp_v1WHEN-VALIDATE-ITEM on T_PAY_HEAD.LOAD_SUPP_BANK_CODEstudy
What you haveWHEN-VALIDATE-ITEM
Declare
  v_Count Number;
  v_Active_Bank Char(1);
  v_Curr_Code VarChar2(10);
Begin
  If :Load_Supp_Bank_Code Is Not Null Then
    SELECT Bank_Name INTO :Load_Supp_Bank_Name FROM M_Bank WHERE Bank_Code=:Load_Supp_Bank_Code;
    
     SELECT Count(*) INTO v_Count 
     FROM M_Supplier_Bank
     WHERE SuppB_Supp_Code=:Load_Supp_Code
       AND SuppB_Bank_Code=:Load_Supp_Bank_Code;

    If v_Count = 0 Then
      Show_Message('Msg_Alert', 'Bank not defined for the supplier!');
    Else
      --Bank
      --Ac_No
      --Swift Code
      --branch=>address1
      --street=>address2
      --country
      --interbank
      --interbankswift
      --active
      /*
      SELECT SUBSTR('Account# ' || RTrim(Nvl(SuppB_Ac_No, ' ')) || '
      ' || 'Account Name: ' || RTrim(Nvl(SuppB_Ac_Name, ' ')) || '
      ' || 'Swift Code: ' || Nvl(SuppB_Swift_Code, ' ') || '
      ' || 'Country: ' || Nvl(SuppB_Country_Code, ' ') || '
      ' || 'Active: ' || Nvl(SuppB_Active_YN, 'N') || '
      ' || 'Inter Bank ' || Nvl(SuppB_Inter_Bank, ' ') || '
      ' || 'Inter Bank Swift ' || Nvl(SuppB_Inter_Swift_Code, ' '), 1, 2000), SuppB_Curr_Code, SuppB_Active_YN 
      INTO :Bank_Dtl, v_Curr_Code, v_Active_Bank 
      FROM M_Supplier_Bank
      WHERE SuppB_Supp_Code=:Load_Supp_Code
      AND SuppB_Bank_Code = :Load_Supp_Bank_Code;
      */

      SELECT SuppB_Ac_No, SuppB_Swift_Code, Suppb_Active_YN, SuppB_Curr_Code, SuppB_Inter_Bank, SuppB_Inter_Swift_Code
      INTO :Load_Supp_Ac_No, :Load_Supp_Swift, v_Active_Bank, v_Curr_Code, :Load_Supp_Inter_Bank, :Load_Supp_Inter_Swift_Code
      FROM M_Supplier_Bank
      WHERE SuppB_Supp_Code =:Load_Supp_Code
        AND SuppB_Bank_Code =:Load_Supp_Bank_Code;
      
      If v_Curr_Code Is Not Null Then
        :Load_Curr_Code := v_Curr_Code;
        SELECT Curr_Buying INTO :Load_Curr_Rate 
        FROM M_Currency 
        WHERE Curr_Code=v_Curr_Code;
      End If;
      
      If Nvl(v_Active_Bank, 'N') = 'N' Then
        Show_Message('Msg_Alert', 'Bank not active!');
        Raise Form_Trigger_Failure;
      End If;

    End If;
  End If; 
End;
What you getClause Rule Language
on change of LOAD_SUPP_BANK_CODE when is_filled(LOAD_SUPP_BANK_CODE):    from BANK(LOAD_SUPP_BANK_CODE)
        # load-fmb-pay-supp-t-pay-head-load-supp-bank-code-change-0    from SUPPLIER_BANK_COUNT(LOAD_SUPP_BANK_CODE, LOAD_SUPP_CODE)
        # load-fmb-pay-supp-t-pay-head-load-supp-bank-code-change-1    from SUPPLIER_BANK(LOAD_SUPP_BANK_CODE, LOAD_SUPP_CODE) when not (SUPPLIER_BANK_COUNT.COUNT = 0)
        # load-fmb-pay-supp-t-pay-head-load-supp-bank-code-change-2    set LOAD_SUPP_BANK_NAME to BANK.BANK_NAME    warn "Bank not defined for the supplier!" when SUPPLIER_BANK_COUNT.COUNT = 0    set LOAD_SUPP_AC_NO to SUPPLIER_BANK.SUPPB_AC_NO when not (SUPPLIER_BANK_COUNT.COUNT = 0)    set LOAD_SUPP_SWIFT to SUPPLIER_BANK.SUPPB_SWIFT_CODE when not (SUPPLIER_BANK_COUNT.COUNT = 0)    set LOAD_SUPP_INTER_BANK to SUPPLIER_BANK.SUPPB_INTER_BANK when not (SUPPLIER_BANK_COUNT.COUNT = 0)    set LOAD_SUPP_INTER_SWIFT_CODE to SUPPLIER_BANK.SUPPB_INTER_SWIFT_CODE when not (SUPPLIER_BANK_COUNT.COUNT = 0)    set LOAD_CURR_CODE to SUPPLIER_BANK.SUPPB_CURR_CODE when not (SUPPLIER_BANK_COUNT.COUNT = 0) and is_filled(SUPPLIER_BANK.SUPPB_CURR_CODE)    deny when not (SUPPLIER_BANK_COUNT.COUNT = 0) and (nvl(SUPPLIER_BANK.SUPPB_ACTIVE_YN, 'N') = 'N') else "Bank not active!"
# 2 statements did not convert.#   SELECT Curr_Buying INTO :Load_Curr_Rate 
#           FROM M_Currency 
#           WHERE Curr_Code=v_Curr_Code
#   reason: its query narrows on V_CURR_CODE, which this body declares as a local: a formal becomes an :ARG bind and a page value becomes a param, and a local is neither#   SELECT Curr_Buying INTO :Load_Curr_Rate 
#           FROM M_Currency 
#           WHERE Curr_Code=v_Curr_Code;
#   reason: the query they read is refused above, so a clause over it would read no row

8 clauses converted, 2 statements refused

9. fmb_pay_supp_v1WHEN-BUTTON-PRESSED on CTRL.BTN_PRV_LOADstudy
What you haveWHEN-BUTTON-PRESSED
Declare
  Cursor C1 is 
  Select * from (
  select 1 Sl_No, Paysd_Txn_Type,Paysd_Doc_No,Paysd_Doc_Dt,Paysd_Divn_Code,Paysd_Anly_Code,
    Paysd_Ref,Paysd_DrCr_Flag,Paysd_Req_Amt,
    Paysd_Actual_Amt,Paysd_Remarks,Paysd_Adj_Amt,Paysd_Os_Id
  from t_pay_suppstmt_detail a 
  Where Paysd_Payh_Id In (select Max(PayH_id) from  T_Pay_head
  where PayH_Comp_Code = :Global.Company And Payh_Supp_Code =:PayH_Supp_Code)
  Union All
  Select 2 Sl_No, Os_Final_Txn_Code , Os_Doc_No , Os_Invoice_Dt ,Os_Divn_Code,Os_Anly_Code_1, 
         Os_Invoice_no,Os_Drcr_Flag,0,OS_Balance-Nvl(Os_Unconf_Pdc,0) - Nvl(Os_Payd_Amt,0) Bal,
                Os_Remarks,0,Os_Id
          From T_Os
         Where Os_Comp_Code = :Global.Company
           And Os_Main_Acnt_Code = :PayH_Supp_Code
           And Sign (Os_Balance-Nvl(Os_Unconf_Pdc,0) - Nvl(Os_Payd_Amt,0)) = 1
           And Os_Invoice_Dt + :Supp_Cr_Days Between :PayH_Process_Dt_Fm and  :Payh_Process_Dt
           And Os_Drcr_Flag = 'D'
           And Nvl (Os_Hold, 'N') <> 'Y'
  Union All
  Select 3 Sl_No, Pdc_Txn_Code , To_Number(Pdc_No) , Pdc_Chq_Dt ,Pdc_Divn_Code,Pdc_Anly_Code_1, 
         Null,'D',0,Pdc_Lc_Amt,
                Pdc_Desc,0,Null
          From T_Pdc
         Where Pdc_Comp_Code = :Global.Company
           And Pdc_Party_Main_Acnt_Code = :PayH_Supp_Code
           and Pdc_Type_flag ='I'
           And Nvl(Pdc_Status,'O') <>'C'
           and Pdc_Chq_Dt >= Nvl(:Payh_Dt,trunc(sysdate)) -90
           And  Nvl(pdc_Confirmed,'N')  ='N')
           Order by Sl_No,Paysd_Doc_Dt;
           
 
 

  
Begin
  Go_Block('T_Pay_Suppstmt_Detail');
  Last_Record;
  For Cur in C1 Loop
    If C1%NotFound Then 
      Exit;
    End If;
    :Paysd_Doc_Dt := Cur.Paysd_Doc_Dt;
    :Paysd_Doc_No  := Cur.Paysd_Doc_No;
    :Paysd_Txn_Type := Cur.Paysd_Txn_Type;
    :Paysd_Ref    :=Cur.Paysd_Ref;
    :Paysd_DrCr_Flag := Cur.Paysd_DrCr_Flag;
    :Paysd_Req_Amt  := Cur.Paysd_Req_Amt;
    :Paysd_Actual_Amt := Cur.Paysd_Actual_Amt;
    :Paysd_Adj_Amt   := Cur.Paysd_Adj_Amt;
    :Paysd_Remarks    :=Cur.Paysd_Remarks;
    :Paysd_Os_Id      :=Cur.PAYSD_OS_ID;
    :Paysd_Divn_Code      :=Cur.PAYSD_Divn_Code;
    :Paysd_Anly_Code      :=Cur.PAYSD_Anly_Code;
    
    Next_Record;
  End Loop;
  Set_Item_Property('Btn_Prv_Load',Enabled,Property_False);
End;


  
      
What you getClause Rule Language
on press of BTN_PRV_LOAD:    go to T_PAY_SUPPSTMT_DETAIL    last record of T_PAY_SUPPSTMT_DETAIL    state disable BTN_PRV_LOAD
# 1 statement did not convert.#   line 41
#   For Cur in C1 Loop
#       If C1%NotFound Then 
#         Exit;
#       End If;
#       :Paysd_Doc_Dt := Cur.Paysd_Doc_Dt;
#       :Paysd_Doc_No  := Cur.Paysd_Doc_No;
#       :Paysd_Txn_Type := Cur.Paysd_Txn_Type;
#       :Paysd_Ref    :=Cur.Paysd_Ref;
#       :Paysd_DrCr_Flag := Cur.Paysd_DrCr_Flag;
#       :Paysd_Req_Amt  := Cur.Paysd_Req_Amt;
#       :Paysd_Actual_Amt := Cur.Paysd_Actual_Amt;
#       :Paysd_Adj_Amt   := Cur.Paysd_Adj_Amt;
#       :Paysd_Remarks    :=Cur.Paysd_Remarks;
#       :Paysd_Os_Id      :=Cur.PAYSD_OS_ID;
#       :Paysd_Divn_Code      :=Cur.PAYSD_Divn_Code;
#       :Paysd_Anly_Code      :=Cur.PAYSD_Anly_Code;
#       
#       Next_Record;
#     End Loop;
#   reason: it selects *, which a row cannot be read by a name

3 clauses converted, 1 statement refused

10. fmb_pay_supp_v1WHEN-VALIDATE-ITEM on T_PAY_HEAD.LOAD_SUPP_CODEstudy
What you haveWHEN-VALIDATE-ITEM
Declare
  v_Count Number;
  v_Days  Number;
Begin
  --If :Load_Supp_Code Is Null Then
  If :Load_Supp_Code Is NOT  Null Then
    select Count(*) into v_Count From M_Supplier Where Supp_Code=:Load_Supp_Code;
    If Nvl(v_Count,0) = 0 Then
        Show_Message('Msg_Alert', 'Supplier not found in Supplier master');
        Raise Form_Trigger_Failure;
    End If;        
    --SELECT Supp_Name, Supp_Cr_Days, Supp_Email
    --INTO :Load_Supp_Name, :Load_Supp_Cr_Days, :Load_Supp_Email
    --FROM M_Supplier 
    --WHERE Supp_Code=:Load_Supp_Code;
  
    
    SELECT Supp_Name, Supp_Cr_Days, Supp_Email, SuppB_Bank_Code,SuppB_Ac_No
    INTO :Load_Supp_Name, :Load_Supp_Cr_Days, :Load_Supp_Email,:Load_Supp_Bank_Code,:Load_Supp_Ac_No
    FROM M_Supplier, M_Supplier_Bank
    WHERE Supp_Code=SuppB_Supp_Code(+)
    And Supp_Code=:Load_Supp_Code;
    
  
  
    
    :PayH_Desc2 := 'Settlement of bills upto ' || To_Char(:PayH_Process_Dt-:Load_Supp_Cr_Days, :Global.DateFormat);
  
      ------------25-05-2013-------------------------
    /*  If :parameter.Supp_Active Is not Null Then
     If  :Load_Supp_Code<>:parameter.Supp_Active Then
        :parameter.Supp_Active:=:Load_Supp_Code;
       End If;
       End If;
       */--27-05-2013
  
    SELECT nvl(Supp_Cr_Days,0)
    INTO  :Supp_Cr_Days
    FROM M_Supplier
    WHERE supp_code=:Load_Supp_Code;
    
    
    
    SELECT SUM(Nvl(Dr,0))-Sum(Nvl(Cr,0))
    INTO :Supp_Hold_Amt
    FROM(
          SELECT DECODE (os_drcr_flag, 'D', os_balance, 0) Dr,
                  DECODE (os_drcr_flag, 'C', os_balance, 0) Cr
          FROM t_os
           WHERE os_comp_code = :Global.company
           AND os_main_acnt_code =:T_Pay_Head.Load_Supp_Code
           AND os_invoice_dt <=:T_Pay_Head.PayH_Process_Dt
           AND os_balance > 0
           AND NVL (os_hold, 'N') = 'Y');
  End If;
  -----------25-05-2013-----------------
  If  :System.Form_Status <> 'Query' Then 
    If :Parameter.Supp_Active Is Not Null Then
      If :Payh_Sup_Tot<=0 Then
        Show_Message('Msg_Alert', 'Supplier '||:Parameter.Supp_Active ||' Failed Validation.Pay Amount Goes '||:Payh_Sup_Tot);
        Raise Form_Trigger_Failure;
      End If;
    End If;
  End If;
End;

:PAYH_SUPP_CODE := :LOAD_SUPP_CODE;

  :Frm_En_Early_Pay :=Fn_Get_Supp_Param(:PayH_Supp_Code,'SUPP_EN_EARLY_PAY');
  :Frm_Early_Pay_Disc :=Fn_Get_Supp_Param(:PayH_Supp_Code,'SUPP_EARLY_PAY_DISC');
    
--Set_Item_Property('Load_Supp_Code',Enabled,Property_false); commented by Srisankar

--------------------------
What you getClause Rule Language
on change of LOAD_SUPP_CODE:    from SUPPLIER_0(LOAD_SUPP_CODE) when is_filled(LOAD_SUPP_CODE)
        # load-fmb-pay-supp-t-pay-head-load-supp-code-when-validate-item-change-0    from SUPPLIER_1(LOAD_SUPP_CODE) when is_filled(LOAD_SUPP_CODE)
        # load-fmb-pay-supp-t-pay-head-load-supp-code-when-validate-item-change-1    exists of SUPPLIER_0 else "Supplier not found in Supplier master" when is_filled(LOAD_SUPP_CODE)    set LOAD_SUPP_NAME to SUPPLIER_1.SUPP_NAME when is_filled(LOAD_SUPP_CODE)    set LOAD_SUPP_CR_DAYS to SUPPLIER_1.SUPP_CR_DAYS when is_filled(LOAD_SUPP_CODE)    set LOAD_SUPP_EMAIL to SUPPLIER_1.SUPP_EMAIL when is_filled(LOAD_SUPP_CODE)    set LOAD_SUPP_BANK_CODE to SUPPLIER_1.SUPPB_BANK_CODE when is_filled(LOAD_SUPP_CODE)    set LOAD_SUPP_AC_NO to SUPPLIER_1.SUPPB_AC_NO when is_filled(LOAD_SUPP_CODE)    set PAYH_DESC2 to 'Settlement of bills upto ' || to_char(PAYH_PROCESS_DT - SUPPLIER_1.SUPP_CR_DAYS, GLOBAL.DATEFORMAT) when is_filled(LOAD_SUPP_CODE)    set SUPP_CR_DAYS to SUPPLIER_0.SUPP_CR_DAYS when is_filled(LOAD_SUPP_CODE)    deny when ((SYSTEM.FORM_STATUS <> 'Query') and is_filled(PARAMETER.SUPP_ACTIVE)) and (PAYH_SUP_TOT <= 0) else (('Supplier ' || PARAMETER.SUPP_ACTIVE) || ' Failed Validation.Pay Amount Goes ') || PAYH_SUP_TOT    set PAYH_SUPP_CODE to LOAD_SUPP_CODE    set FRM_EN_EARLY_PAY to FN_GET_SUPP_PARAM(PAYH_SUPP_CODE, 'SUPP_EN_EARLY_PAY')    set FRM_EARLY_PAY_DISC to FN_GET_SUPP_PARAM(PAYH_SUPP_CODE, 'SUPP_EARLY_PAY_DISC')
# 2 statements did not convert.#   SELECT SUM(Nvl(Dr,0))-Sum(Nvl(Cr,0))
#       INTO :Supp_Hold_Amt
#       FROM(
#             SELECT DECODE (os_drcr_flag, 'D', os_balance, 0) Dr,
#                     DECODE (os_drcr_flag, 'C', os_balance, 0) Cr
#             FROM t_os
#              WHERE os_comp_code = :Global.company
#              AND os_main_acnt_code =:T_Pay_Head.Load_Supp_Code
#              AND os_invoice_dt <=:T_Pay_Head.PayH_Process_Dt
#              AND os_balance > 0
#              AND NVL (os_hold, 'N') = 'Y')
#   reason: its query has no WHERE clause, so nothing ties the row it reads to a value#   SELECT SUM(Nvl(Dr,0))-Sum(Nvl(Cr,0))
#       INTO :Supp_Hold_Amt
#       FROM(
#             SELECT DECODE (os_drcr_flag, 'D', os_balance, 0) Dr,
#                     DECODE (os_drcr_flag, 'C', os_balance, 0) Cr
#             FROM t_os
#              WHERE os_comp_code = :Global.company
#              AND os_main_acnt_code =:T_Pay_Head.Load_Supp_Code
#              AND os_invoice_dt <=:T_Pay_Head.PayH_Process_Dt
#              AND os_balance > 0
#              AND NVL (os_hold, 'N') = 'Y');
#   reason: the query they read is refused above, so a clause over it would read no row

12 clauses converted, 2 statements refused

11. fmb_pay_supp_v1on unit CREATE_CSVstudy
What you havePROGRAM-UNIT
PROCEDURE create_csv IS
  v_values DBMS_UTILITY.maxname_array;

  v_val varchar2(2000);
  v_qry_line varchar2(1000);
  v_qry varchar2(10000);
  v_ctr number := 1;
  v_qry_ref varchar2(50);

  CURSOR cur_sql (p_ref in varchar2) IS SELECT SQL_TEXT FROM M_CUSTOM_SQL
  WHERE SQL_REF=p_ref
  ORDER BY sql_sl_no;
  v_Dt       Date;
  ---26-05-2013----------
  v_file_prfx varchar2(10);
  v_file_extn varchar2(10);
BEGIN    
    --Increase revision number and set file name to have this revision number
  Set_Block_Property('T_Pay_Head', Update_Allowed, Property_True);
      
  :PayH_Rev_No := Nvl(:PayH_Rev_No, 0) + 1;
  ------------/*Janisha*/-- get the file name prefix and extension 
  v_file_prfx :=FN_GET_MAIN_ACNT_PARAM(:PayH_Bank_Main_Acnt_Code, :Global.Company, 'ACNT_PAR_PAYFILE_PREFIX');
  
  v_file_extn :=FN_GET_MAIN_ACNT_PARAM(:PayH_Bank_Main_Acnt_Code, :Global.Company, 'ACNT_PAR_PAYFILE_EXTN');
---------------------------
   -- :File_Name := 'ffcpmt_' || :PayH_Batch_No || '_' || :PayH_Rev_No || '.csv'; Commented on 27-05-2013 to remove the hard coding of  file prefix and extension
   
   :File_Name := v_file_prfx || :PayH_Batch_No || '_' || :PayH_Rev_No || Nvl(v_file_extn,'.csv');
   
    Set_Block_Property('T_Pay_Head', Update_Allowed, Property_False);
  
    --find out dynamic sql ref
    v_qry_ref := FN_GET_MAIN_ACNT_PARAM(:PayH_Bank_Main_Acnt_Code, :Global.Company, 'SUP_SCRIPT_QRY_REF');
    ---
    Select Sysdate INTO v_Dt From Dual; 
    ------

   If v_qry_ref Is Not Null Then
        --find dynamic query to generate csv
        Open cur_sql(v_qry_ref);
        Loop
            Fetch cur_sql INTO v_qry_line;
            EXIT WHEN cur_sql%NOTFOUND;
            
            v_qry := Nvl(v_qry, ' ') || ' ' || nvl(v_qry_line, ' ');
            
        End Loop;


        v_values := FN_RUN_CUSTOM_SUPP_QRY(v_qry, :PayH_Id);
       

        --set initial values of bean if query returns values
        Set_Custom_Property('CTRL.CSVBEAN', 1,'FILE_PATH',:File_Path);
        Set_Custom_Property('CTRL.CSVBEAN', 1,'FILE_NAME',:File_Name);
        
        While v_ctr <= v_values.LAST Loop
            v_val := v_values(v_ctr);
            v_ctr := v_ctr + 1;

          --Add Value to CSV File
            Set_Custom_Property('CTRL.CSVBEAN', 1, 'ADD_ROWDATA', v_val);
        End Loop;
        
        --Send End Message and Create CSV file
        Set_Custom_Property('CTRL.CSVBEAN', 1,'CREATE_FILE','Yes');
        --Janisha on 20-05-2013 to log the csv generation --------------
         Proc_Insert_DivnTxn_Csv_Log(:PayH_Comp_Code,:PayH_Divn_Code,:PayH_Ayr_Code,:PayH_Txn_Code,:PayH_Id,:PayH_Id,v_Dt,:Global.User);
      standard.commit;
  ----------------------------------

        Show_Message('Msg_Alert', 'CSV Created Successfully');
    End If;
END;
What you getClause Rule Language
on unit CREATE_CSV:    state unlock T_PAY_HEAD on update    set PAYH_REV_NO to nvl(PAYH_REV_NO, 0) + 1    set FILE_NAME to (((FN_GET_MAIN_ACNT_PARAM(PAYH_BANK_MAIN_ACNT_CODE, GLOBAL.COMPANY, 'ACNT_PAR_PAYFILE_PREFIX') || PAYH_BATCH_NO) || '_') || PAYH_REV_NO) || nvl(FN_GET_MAIN_ACNT_PARAM(PAYH_BANK_MAIN_ACNT_CODE, GLOBAL.COMPANY, 'ACNT_PAR_PAYFILE_EXTN'), '.csv')    state lock T_PAY_HEAD on update    call PROC_INSERT_DIVNTXN_CSV_LOG(PAYH_COMP_CODE, PAYH_DIVN_CODE, PAYH_AYR_CODE, PAYH_TXN_CODE, PAYH_ID, PAYH_ID, sysdate(), GLOBAL.USER) when is_filled(FN_GET_MAIN_ACNT_PARAM(PAYH_BANK_MAIN_ACNT_CODE, GLOBAL.COMPANY, 'SUP_SCRIPT_QRY_REF'))    warn "CSV Created Successfully" when is_filled(FN_GET_MAIN_ACNT_PARAM(PAYH_BANK_MAIN_ACNT_CODE, GLOBAL.COMPANY, 'SUP_SCRIPT_QRY_REF'))
# 6 statements did not convert.#   line 42
#   Loop
#               Fetch cur_sql INTO v_qry_line;
#               EXIT WHEN cur_sql%NOTFOUND;
#               
#               v_qry := Nvl(v_qry, ' ') || ' ' || nvl(v_qry_line, ' ');
#               
#           End Loop;
#   reason: its cursor takes P_REF, and a parameter passed in PL/SQL is not a bind the page can supply, so the query behind the collection has a name nothing resolves#   line 55
#   Set_Custom_Property('CTRL.CSVBEAN', 1,'FILE_PATH',:File_Path);
#   reason: 'CTRL.CSVBEAN' is a bean for a file export, a Bean Area, and component-tracker.md tier 4.4 rules Bean Areas will not be built: they are a Forms applet's own protocol and the web has no equivalent#   line 56
#   Set_Custom_Property('CTRL.CSVBEAN', 1,'FILE_NAME',:File_Name);
#   reason: 'CTRL.CSVBEAN' is a bean for a file export, a Bean Area, and component-tracker.md tier 4.4 rules Bean Areas will not be built: they are a Forms applet's own protocol and the web has no equivalent#   line 58
#   While v_ctr <= v_values.LAST Loop
#               v_val := v_values(v_ctr);
#               v_ctr := v_ctr + 1;
#   
#              
#               Set_Custom_Property('CTRL.CSVBEAN', 1, 'ADD_ROWDATA', v_val);
#           End Loop;
#   reason: it repeats while v_ctr <= v_values.LAST holds, and a condition is not a collection: crl-loops.md's six operations each read a finite collection whose rows are known before the first pass, and a while loop states only when it stops#   line 67
#   Set_Custom_Property('CTRL.CSVBEAN', 1,'CREATE_FILE','Yes');
#   reason: 'CTRL.CSVBEAN' is a bean for a file export, a Bean Area, and component-tracker.md tier 4.4 rules Bean Areas will not be built: they are a Forms applet's own protocol and the web has no equivalent#   line 70
#   standard.commit;
#   reason: G13: mid-trigger DML and the transaction boundary are refused, not converted

6 clauses converted, 6 statements refused

12. fmb_pay_supp_v1WHEN-BUTTON-PRESSED on T_PAY_HEAD.BTN_TTstudy
What you haveWHEN-BUTTON-PRESSED
Declare
  v_Curr_Block VarChar2(30);
  v_TT_Txn  Varchar2(10);
  v_Count   Number;
  v_main_ac   Varchar2(10);
Begin
  If :Payh_Pay_Mode <> 'T' Then
     Show_Message('Msg_Alert', 'Payment mode is not TT');
     Raise Form_Trigger_Failure;  
  End If;

  If :Payh_Pay_Mode = 'T' and Nvl(:PayH_Supp_Tt_Amt,0) =0   Then
     Show_Message('Msg_Alert', 'TT Amount cannot be zero');
     Raise Form_Trigger_Failure;  
  End If;

  
  If Nvl(:Payh_Approval_Status,'N') <> 'F' Then
     Show_Message('Msg_Alert', 'Payment not approved');
     Raise Form_Trigger_Failure;  
  End If;

  Select count(*) into v_Count From T_Tele_Transfer Where TTrans_Payh_Id =:Payh_Id;
  If v_Count > 0 Then
     Show_Message('Msg_Alert', 'TT already generated');
     Raise Form_Trigger_Failure;  
  End If;
 
  
  v_Count := 0;      
  v_TT_Txn :=Fn_get_Company_Param(:Global.Company,'COM_TT_TXN_CODE');
  If v_TT_Txn is Null Then
      Show_Message('Msg_Alert', 'TT Txn code not defined');
      Raise Form_Trigger_Failure;  
  Else
      Select count(*) Into v_Count from m_final_txn where final_txn_code= v_TT_Txn;
      If Nvl(v_Count,0) =0 Then
        Show_Message('Msg_Alert', 'Invalid TT Txn code');
        Raise Form_Trigger_Failure;  
      End If;        
  End If;
  Select Supp_Main_acnt_Code into v_Main_ac From M_Supplier Where Supp_Code =:PayH_Supp_Code;
  
  Insert Into  T_Tele_Transfer (
   Ttrans_Id, Ttrans_Comp_Code, Ttrans_Ayr_Code, 
   Ttrans_Divn_Code, Ttrans_Dept_Code, Ttrans_Txn_Code, 
   Ttrans_Doc_Dt, Ttrans_Doc_No, Ttrans_Bank_Main_Acnt_Code, 
   Ttrans_Party_Main_Acnt_Code, Ttrans_Party_Address, Ttrans_Party_Bank_Code, 
   Ttrans_Party_Bank_Address, Ttrans_Party_Bank_Ac_No, Ttrans_Party_Bank_Swift, 
   Ttrans_Party_Bank_Aba_No, Ttrans_Anly_Code_1, Ttrans_Curr_Code, 
   Ttrans_Fc_Amt, Ttrans_Lc_Amt, Ttrans_Desc, 
   Ttrans_Remarks, Ttrans_Poh_Id, Ttrans_Confirmed, 
   Ttrans_Conf_Dt, Ttrans_Conf_User, Ttrans_Approval_Path_Id, 
   Ttrans_Approval_Status, Ttrans_Approval_Remarks, Ttrans_Approval_Dt, 
   Ttrans_Status, Ttrans_Due_Dt, Ttrans_Th_Id, 
   Ttrans_Closed, Ttrans_Closed_Dt, Ttrans_Cr_User, 
   Ttrans_Cr_Dt, Ttrans_Edt_User, Ttrans_Edt_Dt,TTrans_Payh_Id) 
   Values (Fn_Get_Next_Id('Tele_Transfer'),:Global.Company,:Payh_Ayr_Code,
   :PayH_Divn_Code,:Payh_Dept_Code,v_TT_Txn,
   Trunc(Sysdate),Fn_Get_Next_Doc_No(:Global.Company, v_TT_Txn, :PayH_Divn_Code, 'D'), :PayH_bank_Main_Acnt_Code, 
   v_Main_Ac,Null,:Load_Supp_Bank_Code,
   Null,:Load_Supp_Ac_No,:Load_Supp_Swift,
   :PayH_Supp_Bank_Aba_No,Null,:Load_Curr_Code,
   :PayH_Supp_TT_Amt,:T_Pay_Detail.Net_Pay_Amt,:Payh_Desc1,
   :Payh_Remarks,Null,'N',
   Null,Null,Null,
   'F','AUTO APPROVE[PAYMENT PREPARATION]',Null,
   Null,Null,Null,
   Null,Null,:Global.User,
   Sysdate,Null,Null,:Payh_Id);
   Standard.Commit;
   v_Count := 0;

   Select count(*) into v_Count From T_Tele_Transfer Where TTrans_Payh_Id =:Payh_Id;
   If v_Count > 0 Then
     Select TTrans_Doc_No into :TT_Req_No From  T_Tele_Transfer Where TTrans_Payh_Id =:Payh_Id;
   End If;
   Show_Message('Msg_Alert', 'TT Generated Successfully');     
     
End;  
What you getClause Rule Language
on press of BTN_TT:    from TELE_TRANSFER_0(PAYH_ID)
        # load-fmb-pay-supp-t-pay-head-btn-tt-press-0    from SUPPLIER(PAYH_SUPP_CODE) when not (TELE_TRANSFER_0.COUNT > 0)
        # load-fmb-pay-supp-t-pay-head-btn-tt-press-2    from TELE_TRANSFER_3(PAYH_ID) when not (TELE_TRANSFER_0.COUNT > 0)
        # load-fmb-pay-supp-t-pay-head-btn-tt-press-3    from TELE_TRANSFER(PAYH_ID) when (TELE_TRANSFER_3.COUNT > 0) and not (TELE_TRANSFER_0.COUNT > 0)
        # load-fmb-pay-supp-t-pay-head-btn-tt-press-4    deny when PAYH_PAY_MODE <> 'T' else "Payment mode is not TT"    deny when (PAYH_PAY_MODE = 'T') and (nvl(PAYH_SUPP_TT_AMT, 0) = 0) else "TT Amount cannot be zero"    deny when nvl(PAYH_APPROVAL_STATUS, 'N') <> 'F' else "Payment not approved"    unique of TELE_TRANSFER_0 else "TT already generated"    deny when is_blank(FN_GET_COMPANY_PARAM(GLOBAL.COMPANY, 'COM_TT_TXN_CODE')) else "TT Txn code not defined"    call WRITE_T_TELE_TRANSFER_52795528(GLOBAL.COMPANY, PAYH_AYR_CODE, PAYH_DIVN_CODE, PAYH_DEPT_CODE, PAYH_BANK_MAIN_ACNT_CODE, LOAD_SUPP_BANK_CODE, LOAD_SUPP_AC_NO, LOAD_SUPP_SWIFT, PAYH_SUPP_BANK_ABA_NO, LOAD_CURR_CODE, PAYH_SUPP_TT_AMT, NET_PAY_AMT, PAYH_DESC1, PAYH_REMARKS, GLOBAL.USER, PAYH_ID)    set TT_REQ_NO to TELE_TRANSFER.TTRANS_DOC_NO when TELE_TRANSFER_3.COUNT > 0    warn "TT Generated Successfully"
# 3 statements did not convert.#   line 71
#   Standard.Commit;
#   reason: G13: mid-trigger DML and the transaction boundary are refused, not converted#   Select count(*) Into v_Count from m_final_txn where final_txn_code= v_TT_Txn
#   reason: its query narrows on V_TT_TXN, which this body declares as a local: a formal becomes an :ARG bind and a page value becomes a param, and a local is neither#   Show_Message('Msg_Alert', 'Invalid TT Txn code');
#   Raise Form_Trigger_Failure;
#   reason: the query they read is refused above, so a clause over it would read no row

8 clauses converted, 3 statements refused

13. fmb_pay_supp_v1WHEN-BUTTON-PRESSED on T_PAY_HEAD.PRINT_BTNstudy
What you haveWHEN-BUTTON-PRESSED
If :PayH_Pay_Mode In ('B', 'C','T') Then
  Declare
    PL_Id    ParamList;
    v_Report VarChar2(30);
    v_Rep_Id  Report_Object;
    v_Rep_Job_Id VarChar2(100);
    v_Job_Id VarChar2(100);
    v_Rep_Status VarChar2(100);
    v_Rep_URL VarChar2(1000);
    v_Host_Name VarChar2(100) := :Global.Rep_Host_Name;
    v_Port    VarChar2(100) := :Global.Rep_Port;
    v_Rep_Server VarChar2(100) := :Global.Rep_Server;
    v_Log_Id   Number(10);
    v_Dt       Date;
  Begin
    v_Report := 'rep_pay_supp_draft';
     PL_Id := Get_Parameter_List(v_Report);
    If Not Id_Null(Pl_Id) Then
      Destroy_Parameter_List(Pl_Id);
    End If;
    Pl_Id:=Create_Parameter_List(v_Report);
    Select Sysdate INTO v_Dt From Dual; 
    
     
    Add_Parameter(PL_Id, 'Comp_Code', Text_Parameter, :Global.Company);
    Add_Parameter(PL_Id, 'Txn_Code', Text_Parameter, :PayH_Txn_Code);
    Add_Parameter(PL_Id, 'Ayr_Code', Text_Parameter, :Payh_Ayr_Code);
    Add_Parameter(PL_Id, 'Divn', Text_Parameter, :PayH_Divn_Code);
    Add_Parameter(PL_Id, 'Doc_No', Text_Parameter, :PayH_No);
    Add_Parameter(PL_Id, 'Usr_Id', Text_Parameter, :Global.User);
    Add_Parameter(PL_Id, 'Rep_Id', Text_Parameter, :Global.System_Product || '.' || :Parameter.Menu_Code);
    Add_Parameter(PL_Id, 'Comp_Name', Text_Parameter, :Global.Company_Name);
    Add_Parameter(Pl_Id, 'ParamForm', Text_Parameter, 'No');

    --Find Report Object
     v_Rep_Id := Find_Report_Object('rep_pay_supp');
          
    --Communication Mode
    Set_Report_Object_Property(v_Rep_Id, Report_Comm_Mode, Synchronous);
    Set_Report_Object_Property(v_Rep_Id, Report_Desformat, Nvl(:Frm_Rep_Desformat,'PDF'));

    If :Mnu_Dest_Name = 'PRINTER' Then
         Set_Report_Object_Property(v_Rep_Id, Report_DesType, PRINTER);
         If :Mnu_Printer_Name Is Not Null Then
          Set_Report_Object_Property(v_Rep_Id, Report_DesName, :Mnu_Printer_Name);
         End If;
      Else
         Set_Report_Object_Property(v_Rep_Id, Report_DesType,CACHE);
      End If;
  
      
      --Specify Report Server and Report File Name
    Set_Report_Object_Property(v_Rep_Id, Report_Server, v_Rep_Server);
    Set_Report_Object_Property(v_Rep_Id, Report_FileName, v_Report);

    --Run Report
    v_Rep_Job_Id := Run_Report_Object(v_Rep_Id, PL_Id);
    v_Rep_Status := Report_Object_Status(v_Rep_Job_Id);      
          
    Proc_Insert_DivnTxn_Print_Log(:PayH_Comp_Code,:PayH_Divn_Code,:PayH_Ayr_Code,:PayH_Txn_Code,:PayH_No,:PayH_No,v_Dt,:Global.User);
    standard.commit;
 
     
          If v_Rep_Status = 'FINISHED' Then
           If Upper(Nvl(:Mnu_Dest_Name,'CACHE')) = 'CACHE' Then
            v_Job_Id := SubStr(v_Rep_Job_Id, length(v_Rep_Server)+2);
      
              v_Rep_URL := 'http://' || v_Host_Name || ':' || v_Port || '/reports/rwservlet/getjobid' || v_Job_Id || '?server=' || v_Rep_Server;
              --    Message(v_Rep_URL);
              Web.Show_Document(v_Rep_URL, '_blank');
             End If;
    Else
        Message('Error Running Report');
    End If;
    
  End ; 
End If;

    
  
  
  
What you getClause Rule Language
on press of PRINT_BTN:    report rep_pay_supp_draft with (Ayr_Code = PAYH_AYR_CODE, Comp_Code = GLOBAL.COMPANY, Comp_Name = GLOBAL.COMPANY_NAME, Divn = PAYH_DIVN_CODE, Doc_No = PAYH_NO, ParamForm = 'No', Rep_Id = (GLOBAL.SYSTEM_PRODUCT || '.') || PARAMETER.MENU_CODE, Txn_Code = PAYH_TXN_CODE, Usr_Id = GLOBAL.USER) when ((PAYH_PAY_MODE = 'B') or (PAYH_PAY_MODE = 'C')) or (PAYH_PAY_MODE = 'T')    call PROC_INSERT_DIVNTXN_PRINT_LOG(PAYH_COMP_CODE, PAYH_DIVN_CODE, PAYH_AYR_CODE, PAYH_TXN_CODE, PAYH_NO, PAYH_NO, sysdate(), GLOBAL.USER) when ((PAYH_PAY_MODE = 'B') or (PAYH_PAY_MODE = 'C')) or (PAYH_PAY_MODE = 'T')
# 2 statements did not convert.#   line 61
#   standard.commit;
#   reason: G13: mid-trigger DML and the transaction boundary are refused, not converted#   line 64
#   If v_Rep_Status = 'FINISHED' Then
#     If Upper(Nvl(:Mnu_Dest_Name,'CACHE')) = 'CACHE' Then
#       v_Job_Id := SubStr(v_Rep_Job_Id, length(v_Rep_Server)+2);
#       v_Rep_URL := 'http://' || v_Host_Name || ':' || v_Port || '/reports/rwservlet/getjobid' || v_Job_Id || '?server=' || v_Rep_Server;
#       Web.Show_Document(v_Rep_URL, '_blank');
#     End If;
#   Else
#     Message('Error Running Report');
#   End If;
#   reason: the guard reads the local V_REP_STATUS, which is written from something CRL has no expression for: a Forms built-in, a database call or a shape the reader refuses

2 clauses converted, 2 statements refused

14. fmb_pay_supp_v1WHEN-BUTTON-PRESSED on T_PAY_HEAD.PB_PRINTstudy
What you haveWHEN-BUTTON-PRESSED
If :PayH_Pay_Mode In ('B', 'C','T') Then
  Declare
    PL_Id    ParamList;
    v_Report VarChar2(30);
    v_Rep_Id  Report_Object;
    v_Rep_Job_Id VarChar2(100);
    v_Job_Id VarChar2(100);
    v_Rep_Status VarChar2(100);
    v_Rep_URL VarChar2(1000);
    v_Host_Name VarChar2(100) := :Global.Rep_Host_Name;
    v_Port    VarChar2(100) := :Global.Rep_Port;
    v_Rep_Server VarChar2(100) := :Global.Rep_Server;
    v_Log_Id   Number(10);
    v_Dt       Date;
  Begin
    v_Report := 'rep_pay_supp_recons';
  
     PL_Id := Get_Parameter_List(v_Report);
    If Not Id_Null(Pl_Id) Then
      Destroy_Parameter_List(Pl_Id);
    End If;
    Pl_Id:=Create_Parameter_List(v_Report);
    Select Sysdate INTO v_Dt From Dual; 
    
     
    Add_Parameter(PL_Id, 'Comp_Code', Text_Parameter, :Global.Company);
    Add_Parameter(PL_Id, 'Txn_Code', Text_Parameter, :PayH_Txn_Code);
    Add_Parameter(PL_Id, 'Ayr_Code', Text_Parameter, :Payh_Ayr_Code);
    Add_Parameter(PL_Id, 'Divn', Text_Parameter, :PayH_Divn_Code);
    Add_Parameter(PL_Id, 'Doc_No', Text_Parameter, :PayH_No);
    Add_Parameter(PL_Id, 'Usr_Id', Text_Parameter, :Global.User);
    Add_Parameter(PL_Id, 'Cr_User', Text_Parameter, :Payh_Cr_User);
    Add_Parameter(PL_Id, 'Rep_Id', Text_Parameter, :Global.System_Product || '.' || :Parameter.Menu_Code);
    Add_Parameter(PL_Id, 'Comp_Name', Text_Parameter, :Global.Company_Name);
    Add_Parameter(Pl_Id, 'ParamForm', Text_Parameter, 'No');

    --Find Report Object
     v_Rep_Id := Find_Report_Object('rep_pay_supp');
          
    --Communication Mode
    Set_Report_Object_Property(v_Rep_Id, Report_Comm_Mode, Synchronous);
    Set_Report_Object_Property(v_Rep_Id, Report_Desformat, Nvl(:Frm_Rep_Desformat,'PDF'));

    If :Mnu_Dest_Name = 'PRINTER' Then
         Set_Report_Object_Property(v_Rep_Id, Report_DesType, PRINTER);
         If :Mnu_Printer_Name Is Not Null Then
          Set_Report_Object_Property(v_Rep_Id, Report_DesName, :Mnu_Printer_Name);
         End If;
      Else
         Set_Report_Object_Property(v_Rep_Id, Report_DesType,CACHE);
      End If;
  
      
      --Specify Report Server and Report File Name
    Set_Report_Object_Property(v_Rep_Id, Report_Server, v_Rep_Server);
    Set_Report_Object_Property(v_Rep_Id, Report_FileName, v_Report);

    --Run Report
    v_Rep_Job_Id := Run_Report_Object(v_Rep_Id, PL_Id);
    v_Rep_Status := Report_Object_Status(v_Rep_Job_Id);      
          
    Proc_Insert_DivnTxn_Print_Log(:PayH_Comp_Code,:PayH_Divn_Code,:PayH_Ayr_Code,:PayH_Txn_Code,:PayH_No,:PayH_No,v_Dt,:Global.User);
    standard.commit;
 
     
          If v_Rep_Status = 'FINISHED' Then
           If Upper(Nvl(:Mnu_Dest_Name,'CACHE')) = 'CACHE' Then
            v_Job_Id := SubStr(v_Rep_Job_Id, length(v_Rep_Server)+2);
      
              v_Rep_URL := 'http://' || v_Host_Name || ':' || v_Port || '/reports/rwservlet/getjobid' || v_Job_Id || '?server=' || v_Rep_Server;
              --    Message(v_Rep_URL);
              Web.Show_Document(v_Rep_URL, '_blank');
             End If;
    Else
        Message('Error Running Report');
    End If;
    
  End ; 
End If;

    
  
  
  
What you getClause Rule Language
on press of PB_PRINT:    report rep_pay_supp_recons with (Ayr_Code = PAYH_AYR_CODE, Comp_Code = GLOBAL.COMPANY, Comp_Name = GLOBAL.COMPANY_NAME, Cr_User = PAYH_CR_USER, Divn = PAYH_DIVN_CODE, Doc_No = PAYH_NO, ParamForm = 'No', Rep_Id = (GLOBAL.SYSTEM_PRODUCT || '.') || PARAMETER.MENU_CODE, Txn_Code = PAYH_TXN_CODE, Usr_Id = GLOBAL.USER) when ((PAYH_PAY_MODE = 'B') or (PAYH_PAY_MODE = 'C')) or (PAYH_PAY_MODE = 'T')    call PROC_INSERT_DIVNTXN_PRINT_LOG(PAYH_COMP_CODE, PAYH_DIVN_CODE, PAYH_AYR_CODE, PAYH_TXN_CODE, PAYH_NO, PAYH_NO, sysdate(), GLOBAL.USER) when ((PAYH_PAY_MODE = 'B') or (PAYH_PAY_MODE = 'C')) or (PAYH_PAY_MODE = 'T')
# 2 statements did not convert.#   line 63
#   standard.commit;
#   reason: G13: mid-trigger DML and the transaction boundary are refused, not converted#   line 66
#   If v_Rep_Status = 'FINISHED' Then
#     If Upper(Nvl(:Mnu_Dest_Name,'CACHE')) = 'CACHE' Then
#       v_Job_Id := SubStr(v_Rep_Job_Id, length(v_Rep_Server)+2);
#       v_Rep_URL := 'http://' || v_Host_Name || ':' || v_Port || '/reports/rwservlet/getjobid' || v_Job_Id || '?server=' || v_Rep_Server;
#       Web.Show_Document(v_Rep_URL, '_blank');
#     End If;
#   Else
#     Message('Error Running Report');
#   End If;
#   reason: the guard reads the local V_REP_STATUS, which is written from something CRL has no expression for: a Forms built-in, a database call or a shape the reader refuses

2 clauses converted, 2 statements refused

15. fmb_pay_supp_v1WHEN-BUTTON-PRESSED on T_PAY_HEAD.ITEM447study
What you haveWHEN-BUTTON-PRESSED
If :PayH_Pay_Mode In ('B', 'C','T') Then
  Declare
    PL_Id    ParamList;
    v_Report VarChar2(30);
    v_Rep_Id  Report_Object;
    v_Rep_Job_Id VarChar2(100);
    v_Job_Id VarChar2(100);
    v_Rep_Status VarChar2(100);
    v_Rep_URL VarChar2(1000);
    v_Host_Name VarChar2(100) := :Global.Rep_Host_Name;
    v_Port    VarChar2(100) := :Global.Rep_Port;
    v_Rep_Server VarChar2(100) := :Global.Rep_Server;
    v_Log_Id   Number(10);
    v_Dt       Date;
  Begin
    v_Report := 'rep_pay_supp_sum';
  
     PL_Id := Get_Parameter_List(v_Report);
    If Not Id_Null(Pl_Id) Then
      Destroy_Parameter_List(Pl_Id);
    End If;
    Pl_Id:=Create_Parameter_List(v_Report);
    Select Sysdate INTO v_Dt From Dual; 
    
     
    Add_Parameter(PL_Id, 'Comp_Code', Text_Parameter, :Global.Company);
    Add_Parameter(PL_Id, 'Txn_Code', Text_Parameter, :PayH_Txn_Code);
    Add_Parameter(PL_Id, 'Ayr_Code', Text_Parameter, :Payh_Ayr_Code);
    Add_Parameter(PL_Id, 'Divn', Text_Parameter, :PayH_Divn_Code);
    Add_Parameter(PL_Id, 'Doc_No', Text_Parameter, :PayH_No);
    Add_Parameter(PL_Id, 'Usr_Id', Text_Parameter, :Global.User);
    Add_Parameter(PL_Id, 'Cr_User', Text_Parameter, :Payh_Cr_User);
    Add_Parameter(PL_Id, 'Rep_Id', Text_Parameter, :Global.System_Product || '.' || :Parameter.Menu_Code);
    Add_Parameter(PL_Id, 'Comp_Name', Text_Parameter, :Global.Company_Name);
    Add_Parameter(Pl_Id, 'ParamForm', Text_Parameter, 'No');

    --Find Report Object
     v_Rep_Id := Find_Report_Object('rep_pay_supp');
          
    --Communication Mode
    Set_Report_Object_Property(v_Rep_Id, Report_Comm_Mode, Synchronous);
    Set_Report_Object_Property(v_Rep_Id, Report_Desformat, Nvl(:Frm_Rep_Desformat,'PDF'));

    If :Mnu_Dest_Name = 'PRINTER' Then
         Set_Report_Object_Property(v_Rep_Id, Report_DesType, PRINTER);
         If :Mnu_Printer_Name Is Not Null Then
          Set_Report_Object_Property(v_Rep_Id, Report_DesName, :Mnu_Printer_Name);
         End If;
      Else
         Set_Report_Object_Property(v_Rep_Id, Report_DesType,CACHE);
      End If;
  
      
      --Specify Report Server and Report File Name
    Set_Report_Object_Property(v_Rep_Id, Report_Server, v_Rep_Server);
    Set_Report_Object_Property(v_Rep_Id, Report_FileName, v_Report);

    --Run Report
    v_Rep_Job_Id := Run_Report_Object(v_Rep_Id, PL_Id);
    v_Rep_Status := Report_Object_Status(v_Rep_Job_Id);      
          
    Proc_Insert_DivnTxn_Print_Log(:PayH_Comp_Code,:PayH_Divn_Code,:PayH_Ayr_Code,:PayH_Txn_Code,:PayH_No,:PayH_No,v_Dt,:Global.User);
    standard.commit;
 
     
          If v_Rep_Status = 'FINISHED' Then
           If Upper(Nvl(:Mnu_Dest_Name,'CACHE')) = 'CACHE' Then
            v_Job_Id := SubStr(v_Rep_Job_Id, length(v_Rep_Server)+2);
      
              v_Rep_URL := 'http://' || v_Host_Name || ':' || v_Port || '/reports/rwservlet/getjobid' || v_Job_Id || '?server=' || v_Rep_Server;
              --    Message(v_Rep_URL);
              Web.Show_Document(v_Rep_URL, '_blank');
             End If;
    Else
        Message('Error Running Report');
    End If;
    
  End ; 
End If;

    
  
  
  
What you getClause Rule Language
on press of ITEM447:    report rep_pay_supp_sum with (Ayr_Code = PAYH_AYR_CODE, Comp_Code = GLOBAL.COMPANY, Comp_Name = GLOBAL.COMPANY_NAME, Cr_User = PAYH_CR_USER, Divn = PAYH_DIVN_CODE, Doc_No = PAYH_NO, ParamForm = 'No', Rep_Id = (GLOBAL.SYSTEM_PRODUCT || '.') || PARAMETER.MENU_CODE, Txn_Code = PAYH_TXN_CODE, Usr_Id = GLOBAL.USER) when ((PAYH_PAY_MODE = 'B') or (PAYH_PAY_MODE = 'C')) or (PAYH_PAY_MODE = 'T')    call PROC_INSERT_DIVNTXN_PRINT_LOG(PAYH_COMP_CODE, PAYH_DIVN_CODE, PAYH_AYR_CODE, PAYH_TXN_CODE, PAYH_NO, PAYH_NO, sysdate(), GLOBAL.USER) when ((PAYH_PAY_MODE = 'B') or (PAYH_PAY_MODE = 'C')) or (PAYH_PAY_MODE = 'T')
# 2 statements did not convert.#   line 63
#   standard.commit;
#   reason: G13: mid-trigger DML and the transaction boundary are refused, not converted#   line 66
#   If v_Rep_Status = 'FINISHED' Then
#     If Upper(Nvl(:Mnu_Dest_Name,'CACHE')) = 'CACHE' Then
#       v_Job_Id := SubStr(v_Rep_Job_Id, length(v_Rep_Server)+2);
#       v_Rep_URL := 'http://' || v_Host_Name || ':' || v_Port || '/reports/rwservlet/getjobid' || v_Job_Id || '?server=' || v_Rep_Server;
#       Web.Show_Document(v_Rep_URL, '_blank');
#     End If;
#   Else
#     Message('Error Running Report');
#   End If;
#   reason: the guard reads the local V_REP_STATUS, which is written from something CRL has no expression for: a Forms built-in, a database call or a shape the reader refuses

2 clauses converted, 2 statements refused

16. fmb_pay_supp_v1WHEN-BUTTON-PRESSED on CTRL_PAY_DETAIL.PB_MLOADstudy
What you haveWHEN-BUTTON-PRESSED
DECLARE
  v_cnt NUMBER;
  load_flag char(1):='N';
  v_lcnt Number:=0;
BEGIN
  Go_Block('Ctrl_Pay_Detail');
  First_Record;
  Last_Record;
  v_cnt:=:system.trigger_record;
  
  First_Record;
  Set_Block_Property('T_Pay_Detail', Insert_Allowed, Property_True);
  Set_Block_Property('T_Pay_Detail', Delete_Allowed, Property_True);
  Go_Block('T_Pay_Detail');
  :System.Message_Level := '10';--26-05-2013
  First_Record;
  -----16-05-2013-----------
  Loop
    If :System.Last_Record='TRUE' Then
      Exit;
    End If;
      If :T_Pay_Detail.PayD_Flag IN('M','R') AND :T_Pay_Detail.Payd_Os_Id Is Not Null  Then
        
          Delete_Record;
          Previous_Record;
 
    Else
      Next_Record;
    End If;

  End Loop;
-------------18-05-2013----------
       Last_Record;
       If :T_Pay_Detail.PayD_Flag IN('M','R') AND :T_Pay_Detail.Payd_Os_Id Is Not Null Then
       Delete_Record;
       Else
         Next_record;
       End If;
       
  ------------------------
  For i IN 1..v_cnt
  Loop
    If :Ctrl_Pay_Detail.load='Y' Then
    ------------------
    
      :T_Pay_Detail.PayD_Id:=:Ctrl_Pay_Detail.PayD_id;
      :T_Pay_Detail.PayD_PayH_Id:=:Ctrl_Pay_Detail.PayD_PayH_Id;
      :T_Pay_Detail.PayD_Th_Id:=:Ctrl_Pay_Detail.PayD_Th_Id;
      :T_Pay_Detail.PayD_Supp_Code:=:Ctrl_Pay_Detail.PayD_Supp_Code;
      :T_Pay_Detail.Supp_Name:=:Ctrl_Pay_Detail.Supp_Name;
      :T_Pay_Detail.PayD_Supp_Bank_Code:=:Ctrl_Pay_Detail.PayD_Supp_Bank_Code;
      :T_Pay_Detail.PayD_OS_Id := :Ctrl_Pay_Detail.PayD_OS_Id;
      :T_Pay_Detail.OS_Txn_Code := :Ctrl_Pay_Detail.OS_Txn_Code;
      :T_Pay_Detail.OS_Doc_Dt := :Ctrl_Pay_Detail.OS_Doc_Dt;
      :T_Pay_Detail.OS_Invoice_No := :Ctrl_Pay_Detail.OS_Invoice_No;
      :T_Pay_Detail.OS_Due_Dt := :Ctrl_Pay_Detail.OS_Due_Dt;
      :T_Pay_Detail.PayD_Orig_LC_Amt := :Ctrl_Pay_Detail.PayD_Orig_LC_Amt;
      :T_Pay_Detail.PayD_Bal := :Ctrl_Pay_Detail.PayD_Bal;
       :T_Pay_Detail.PayD_DrCr_Flag := :Ctrl_Pay_Detail.PayD_DrCr_Flag;
       :T_Pay_Detail.PayD_FC_Amt := :Ctrl_Pay_Detail.PayD_FC_Amt;
      :T_Pay_Detail.PayD_LC_Amt := :Ctrl_Pay_Detail.PayD_LC_Amt;
      :T_Pay_Detail.PayD_Pay_Type := :Ctrl_Pay_Detail.PayD_Pay_Type;
      :T_Pay_Detail.PayD_Curr_Code := :Ctrl_Pay_Detail.PayD_Curr_Code;
      :T_Pay_Detail.PayD_Curr_Rate := :Ctrl_Pay_Detail.PayD_Curr_Rate;
      :T_Pay_Detail.PayD_Flag := :Ctrl_Pay_Detail.PayD_Flag;
      :T_Pay_Detail.PayD_Cr_USer:= :Ctrl_Pay_Detail.PayD_Cr_USer;
      :T_Pay_Detail.PayD_Cr_Dt := :Ctrl_Pay_Detail.PayD_Cr_Dt;
      :T_Pay_Detail.Payd_Remarks:=:Ctrl1.Remarks;
      
      If (  :T_Pay_Detail.OS_Doc_Dt + (:Supp_Cr_Days - Nvl(:Adj_Days,0))) > :PayH_Process_Dt Then
          If Nvl(:Frm_En_Early_Pay,'N') ='Y' and   :T_Pay_Detail.PayD_DrCr_Flag ='C' Then
            :T_Pay_Detail.Payd_Early_Pay_Disc_Perc :=:Frm_Early_Pay_Disc; 
          End If;
      End If;
      
      v_lcnt:=v_lcnt+1;
    End If;
    Go_Block('Ctrl_Pay_Detail');
    Next_Record;
   Go_Block('T_Pay_Detail');
   If :T_Pay_Detail.Payd_Supp_Code Is Not Null Then
      Next_Record;
  End If;
    --Next_Record;    
  End Loop;
  
    ---Added on 19-05-2013--------------  
   If v_lcnt>0 Then
   Proc_Insert_Update_Setting;
   :Parameter.Oth:='N';
   Set_Item_Property('PB_Oth', Enabled, Property_False);
   End If;
 
    go_block('T_Pay_Detail');
    
  END;
What you getClause Rule Language
on press of PB_MLOAD:    go to CTRL_PAY_DETAIL    last record of CTRL_PAY_DETAIL    first record of CTRL_PAY_DETAIL    state unlock T_PAY_DETAIL on insert, delete    go to T_PAY_DETAIL    first record of CTRL_PAY_DETAIL    last record of CTRL_PAY_DETAIL    next record of CTRL_PAY_DETAIL when not (((PAYD_FLAG = 'M') or (PAYD_FLAG = 'R')) and is_filled(PAYD_OS_ID))    go to T_PAY_DETAIL
# 4 statements did not convert.#   line 18
#   Loop
#       If :System.Last_Record='TRUE' Then
#         Exit;
#       End If;
#         If :T_Pay_Detail.PayD_Flag IN('M','R') AND :T_Pay_Detail.Payd_Os_Id Is Not Null  Then
#           
#             Delete_Record;
#             Previous_Record;
#    
#       Else
#         Next_Record;
#       End If;
#   
#     End Loop;
#   reason: its body holds a statement no recognizer claims, and a for each with one dropped runs the rest against every row: Delete_Record; Previous_Record#   line 35
#   Delete_Record;
#   reason: DELETE_RECORD is a Forms built-in, which no FormConnect document declares because no database holds it, and no program unit of this form declares one either, so there is no body to inline under the caller's point and item and nothing to bridge to#   line 41
#   For i IN 1..v_cnt
#     Loop
#       If :Ctrl_Pay_Detail.load='Y' Then
#        
#       
#         :T_Pay_Detail.PayD_Id:=:Ctrl_Pay_Detail.PayD_id;
#         :T_Pay_Detail.PayD_PayH_Id:=:Ctrl_Pay_Detail.PayD_PayH_Id;
#         :T_Pay_Detail.PayD_Th_Id:=:Ctrl_Pay_Detail.PayD_Th_Id;
#         :T_Pay_Detail.PayD_Supp_Code:=:Ctrl_Pay_Detail.PayD_Supp_Code;
#         :T_Pay_Detail.Supp_Name:=:Ctrl_Pay_Detail.Supp_Name;
#         :T_Pay_Detail.PayD_Supp_Bank_Code:=:Ctrl_Pay_Detail.PayD_Supp_Bank_Code;
#         :T_Pay_Detail.PayD_OS_Id := :Ctrl_Pay_Detail.PayD_OS_Id;
#         :T_Pay_Detail.OS_Txn_Code := :Ctrl_Pay_Detail.OS_Txn_Code;
#         :T_Pay_Detail.OS_Doc_Dt := :Ctrl_Pay_Detail.OS_Doc_Dt;
#         :T_Pay_Detail.OS_Invoice_No := :Ctrl_Pay_Detail.OS_Invoice_No;
#         :T_Pay_Detail.OS_Due_Dt := :Ctrl_Pay_Detail.OS_Due_Dt;
#         :T_Pay_Detail.PayD_Orig_LC_Amt := :Ctrl_Pay_Detail.PayD_Orig_LC_Amt;
#         :T_Pay_Detail.PayD_Bal := :Ctrl_Pay_Detail.PayD_Bal;
#          :T_Pay_Detail.PayD_DrCr_Flag := :Ctrl_Pay_Detail.PayD_DrCr_Flag;
#          :T_Pay_Detail.PayD_FC_Amt := :Ctrl_Pay_Detail.PayD_FC_Amt;
#         :T_Pay_Detail.PayD_LC_Amt := :Ctrl_Pay_Detail.PayD_LC_Amt;
#         :T_Pay_Detail.PayD_Pay_Type := :Ctrl_Pay_Detail.PayD_Pay_Type;
#         :T_Pay_Detail.PayD_Curr_Code := :Ctrl_Pay_Detail.PayD_Curr_Code;
#         :T_Pay_Detail.PayD_Curr_Rate := :Ctrl_Pay_Detail.PayD_Curr_Rate;
#         :T_Pay_Detail.PayD_Flag := :Ctrl_Pay_Detail.PayD_Flag;
#         :T_Pay_Detail.PayD_Cr_USer:= :Ctrl_Pay_Detail.PayD_Cr_USer;
#         :T_Pay_Detail.PayD_Cr_Dt := :Ctrl_Pay_Detail.PayD_Cr_Dt;
#         :T_Pay_Detail.Payd_Remarks:=:Ctrl1.Remarks;
#         
#         If (  :T_Pay_Detail.OS_Doc_Dt + (:Supp_Cr_Days - Nvl(:Adj_Days,0))) > :PayH_Process_Dt Then
#             If Nvl(:Frm_En_Early_Pay,'N') ='Y' and   :T_Pay_Detail.PayD_DrCr_Flag ='C' Then
#               :T_Pay_Detail.Payd_Early_Pay_Disc_Perc :=:Frm_Early_Pay_Disc; 
#             End If;
#         End If;
#         
#         v_lcnt:=v_lcnt+1;
#       End If;
#       Go_Block('Ctrl_Pay_Detail');
#       Next_Record;
#      Go_Block('T_Pay_Detail');
#      If :T_Pay_Detail.Payd_Supp_Code Is Not Null Then
#         Next_Record;
#     End If;
#        
#     End Loop;
#   reason: it moves to CTRL_PAY_DETAIL and T_PAY_DETAIL inside the loop, so it acts on two blocks in one body and a collection operation names one collection#   line 88
#   If v_lcnt>0 Then
#     Proc_Insert_Update_Setting;
#     :Parameter.Oth:='N';
#     Set_Item_Property('PB_Oth', Enabled, Property_False);
#   End If;
#   reason: the guard reads the local V_LCNT, which a loop body above it counts with: `V_LCNT := V_LCNT+1`, so what it holds here is the loop's own arithmetic, and crl-loops.md states the collection operation and not the bookkeeping around it

9 clauses converted, 4 statements refused

17. fmb_pay_supp_v1WHEN-BUTTON-PRESSED on T_PAY_HEAD.PB_PROCESSstudy
What you haveWHEN-BUTTON-PRESSED
If :Payh_Pay_Mode ='C' Then
  Declare
    PL_Id  ParamList;
    v_Report VarChar2(30) := 'rep_voucher';
    v_Rep_Id  Report_Object;
    v_Rep_Job_Id VarChar2(100);
    v_Job_Id VarChar2(100);
    v_Rep_Status VarChar2(100);
    v_Rep_URL VarChar2(1000);
    v_Host_Name VarChar2(100) := :Global.Rep_Host_Name;
    v_Port  VarChar2(100) := :Global.Rep_Port;
    v_Rep_Server VarChar2(100) := :Global.Rep_Server;
    v_Doc_Fm    Number(10);
    v_Doc_To    Number(10);
    v_Txn       Varchar2(10);
    v_Ayr_Code  Varchar2(10);
    v_Divn      Varchar2(10);
    v_Prv_Ayr_Code  Varchar2(10);
    v_Cur_Ayr_Code  Varchar2(10);
    --01-06-2013-----------
    v_Alert     Number;
    
  Begin
    
  
      v_alert := SHOW_ALERT ('PROCESS_ALERT');
  
  If v_alert = alert_button1 Then  
    
    If :PayH_Approval_Status ='F' Then 
      If Nvl(:PayH_Process_Status,'N') ='N'  Then
        Set_Block_Property('T_Pay_Head', Update_Allowed, Property_True);
        :PayH_Process_Status :='F'; 
         :PayH_Edt_User :=:Global.User;
        Select Sysdate INTO :PayH_Edt_Dt From Dual;
        Commit_Form;
        Set_Block_Property('T_Pay_Head', Update_Allowed, Property_False);
        
        
        Select  Min(Th_Doc_No) ,Max(Th_Doc_No),Th_Txn_Code,Th_Ayr_Code,TH_Divn_Code
        INTO v_Doc_Fm,v_Doc_To,v_Txn,v_Ayr_Code,v_Divn From 
        (Select Th_Id,Th_Doc_No,Th_Comp_Code,Th_Txn_Code,Th_Ayr_Code,Th_Divn_Code From T_Cur_Trans_Header
        Union all
        Select Th_Id,Th_Doc_No,Th_Comp_Code,Th_Txn_Code,Th_Ayr_Code,Th_Divn_Code From T_Prv_Trans_Header
        ),T_Pay_Detail
        Where Th_Id =Payd_Th_Id
        and Payd_PayH_Id =:PayH_Id
        Group by Th_Txn_Code,Th_Ayr_Code,TH_Divn_Code ;
        If v_Doc_Fm is Not Null Then
          v_Cur_ayr_Code :=Fn_Get_Ayr_Code(:Global.Company,'C');
          v_Prv_Ayr_Code :=Fn_Get_Ayr_Code(:Global.Company,'P');  
          -- 
          If Upper(:Mnu_Dest_Name) = 'PRINTER' Then
            If v_Cur_Ayr_Code = v_Ayr_Code Then
              UPDATE T_Cur_Trans_Header SET TH_Prn_Count = Decode(Nvl(TH_Prn_Count,0), 9, 9, Nvl(TH_Prn_Count,0)+1)
              WHERE TH_Comp_Code = :Global.Company
              AND TH_AYr_Code = v_Ayr_Code
              AND TH_Txn_Code = v_Txn
              AND TH_Doc_No Between v_Doc_Fm AND v_Doc_To;
            Else
              UPDATE T_Cur_Trans_Header SET TH_Prn_Count = Decode(Nvl(TH_Prn_Count,0), 9, 9, Nvl(TH_Prn_Count,0)+1)
              WHERE TH_Comp_Code = :Global.Company
              AND TH_AYr_Code = v_Ayr_Code
              AND TH_Txn_Code = v_Txn
              AND TH_Doc_No Between v_Doc_Fm AND v_Doc_To;
            End If;
          End If;    
      
         
        
          PL_Id := Get_Parameter_List(v_Report);
          If Not Id_Null(Pl_Id) Then
            Destroy_Parameter_List(Pl_Id);
          End If;
          Pl_Id:=Create_Parameter_List(v_Report);
        
          Add_Parameter(PL_Id, 'Comp_Code', Text_Parameter, :Global.Company);
          Add_Parameter(PL_Id, 'AYr_Code', Text_Parameter, v_Ayr_Code);
          Add_Parameter(PL_Id, 'Txn', Text_Parameter, v_Txn);
          Add_Parameter(PL_Id, 'Doc_No_Fm', Text_Parameter, v_Doc_Fm);
          Add_Parameter(PL_Id, 'Doc_No_To', Text_Parameter, v_Doc_To);
          Add_Parameter(PL_Id, 'Divn', Text_Parameter, v_Divn);
          Add_Parameter(PL_Id, 'Usr_Id', Text_Parameter, :Global.User);
          Add_Parameter(PL_Id, 'Rep_Id', Text_Parameter, :Global.System_Product || '.' || :Parameter.Menu_Code);
          Add_Parameter(PL_Id, 'Comp_Name', Text_Parameter, :Global.Company_Name);
          Add_Parameter(Pl_Id, 'ParamForm', Text_Parameter, 'No');
      
      
          --Find Report Object
          v_Rep_Id := Find_Report_Object('Rep_Voucher');
        
          :Frm_Rep_Desformat :=Fn_Get_Final_Txn_Param(v_Txn, :Global.Company, 'FINAL_REP_DESFORMAT');
          :Frm_Printer := Fn_Get_Final_Txn_Param(v_Txn, :Global.Company, 'FINAL_TXN_PRINTER');
           :Frm_Report  := Fn_Get_Final_Txn_Param(v_Txn, :Global.Company, 'FINAL_REPORT');
          --Communication Mode
          Set_Report_Object_Property(v_Rep_Id, Report_Comm_Mode, Synchronous);
          Set_Report_Object_Property(v_Rep_Id, Report_Desformat, Nvl(:Frm_Rep_Desformat,'PDF'));
      
          
          
          --Handled Destination Type and Name
          If Upper(:Mnu_Dest_Name) = 'PRINTER' Then
            Set_Report_Object_Property(v_Rep_Id, Report_DesType, PRINTER);
            If Nvl(:Frm_Printer,:Mnu_Printer_Name) Is Not Null Then
              Set_Report_Object_Property(v_Rep_Id, Report_DesName, Nvl(:Frm_Printer,:Mnu_Printer_Name));
            End If;
          Else
            Set_Report_Object_Property(v_Rep_Id, Report_DesType, CACHE);
          End If;
  
          
          --Specify Report Server and Report File Name
          Set_Report_Object_Property(v_Rep_Id, Report_Server, v_Rep_Server);
          Set_Report_Object_Property(v_Rep_Id, Report_FileName, Nvl(:Frm_Report ,v_Report));
          
          --Run Report
          v_Rep_Job_Id := Run_Report_Object(v_Rep_Id, PL_Id);
          v_Rep_Status := Report_Object_Status(v_Rep_Job_Id);
          
           SET_CUSTOM_PROPERTY('CTRL.PRINTBEAN',1,'DEFAULT_PRINTER',:Mnu_Printer_Name);
    
          If v_Rep_Status = 'FINISHED' Then
            If Upper(:Mnu_Dest_Name) = 'PRINTER' Then
                 v_Job_Id := SubStr(v_Rep_Job_Id, length(v_Rep_Server)+2);
                 v_Rep_URL := 'http://' || v_Host_Name || ':' || v_Port || '/reports/rwservlet/getjobid' || v_Job_Id || '?server=' || v_Rep_Server;
                 Message(v_Rep_URL);
                 SET_CUSTOM_PROPERTY('CTRL.PRINTBEAN',1,'FILE_NAME',v_Rep_URL);
                 SET_CUSTOM_PROPERTY('CTRL.PRINTBEAN',1,'PRINT_FILE','');
                 --Web.Show_Document(v_Rep_URL, '_blank');
            Elsif Upper(:Mnu_Dest_Name) = 'CACHE' Then
                  v_Job_Id := SubStr(v_Rep_Job_Id, length(v_Rep_Server)+2);
                 v_Rep_URL := 'http://' || v_Host_Name || ':' || v_Port || '/reports/rwservlet/getjobid' || v_Job_Id || '?server=' || v_Rep_Server;
                 Message(v_Rep_URL);
                 Web.Show_Document(v_Rep_URL, '_blank');
            End If;
          Else
            Message('Error Running Report');
          End If;
        End If;
      Else
        Show_Message('Msg_Alert','Already processed');
      End If;  
    
    End If;
   End If;
  End;
  End If;
  
What you getClause Rule Language
on press of PB_PROCESS:    show alert PROCESS_ALERT when PAYH_PAY_MODE = 'C'    when (((PAYH_PAY_MODE = 'C') and (ANSWER.BUTTON = '1')) and (PAYH_APPROVAL_STATUS = 'F')) and (nvl(PAYH_PROCESS_STATUS, 'N') = 'N')    warn "Already processed" when (((PAYH_PAY_MODE = 'C') and (ANSWER.BUTTON = '1')) and (PAYH_APPROVAL_STATUS = 'F')) and not (nvl(PAYH_PROCESS_STATUS, 'N') = 'N')
# 2 statements did not convert.#   line 40
#   Select  Min(Th_Doc_No) ,Max(Th_Doc_No),Th_Txn_Code,Th_Ayr_Code,TH_Divn_Code
#           INTO v_Doc_Fm,v_Doc_To,v_Txn,v_Ayr_Code,v_Divn From 
#           (Select Th_Id,Th_Doc_No,Th_Comp_Code,Th_Txn_Code,Th_Ayr_Code,Th_Divn_Code From T_Cur_Trans_Header
#           Union all
#           Select Th_Id,Th_Doc_No,Th_Comp_Code,Th_Txn_Code,Th_Ayr_Code,Th_Divn_Code From T_Prv_Trans_Header
#           ),T_Pay_Detail
#           Where Th_Id =Payd_Th_Id
#           and Payd_PayH_Id =:PayH_Id
#           Group by Th_Txn_Code,Th_Ayr_Code,TH_Divn_Code;
#   reason: a source names one aggregate or none, and this selects 2 of them beside 3 other expressions, so no one name says what its row carries#   line 49
#   If v_Doc_Fm is Not Null Then
#     v_Cur_ayr_Code :=Fn_Get_Ayr_Code(:Global.Company,'C');
#     v_Prv_Ayr_Code :=Fn_Get_Ayr_Code(:Global.Company,'P');
#     If Upper(:Mnu_Dest_Name) = 'PRINTER' Then
#       If v_Cur_Ayr_Code = v_Ayr_Code Then
#         UPDATE T_Cur_Trans_Header SET TH_Prn_Count = Decode(Nvl(TH_Prn_Count,0), 9, 9, Nvl(TH_Prn_Count,0)+1)
#                 WHERE TH_Comp_Code = :Global.Company
#                 AND TH_AYr_Code = v_Ayr_Code
#                 AND TH_Txn_Code = v_Txn
#                 AND TH_Doc_No Between v_Doc_Fm AND v_Doc_To;
#       Else
#         UPDATE T_Cur_Trans_Header SET TH_Prn_Count = Decode(Nvl(TH_Prn_Count,0), 9, 9, Nvl(TH_Prn_Count,0)+1)
#                 WHERE TH_Comp_Code = :Global.Company
#                 AND TH_AYr_Code = v_Ayr_Code
#                 AND TH_Txn_Code = v_Txn
#                 AND TH_Doc_No Between v_Doc_Fm AND v_Doc_To;
#       End If;
#     End If;
#     PL_Id := Get_Parameter_List(v_Report);
#     If Not Id_Null(Pl_Id) Then
#       Destroy_Parameter_List(Pl_Id);
#     End If;
#     Pl_Id:=Create_Parameter_List(v_Report);
#     Add_Parameter(PL_Id, 'Comp_Code', Text_Parameter, :Global.Company);
#     Add_Parameter(PL_Id, 'AYr_Code', Text_Parameter, v_Ayr_Code);
#     Add_Parameter(PL_Id, 'Txn', Text_Parameter, v_Txn);
#     Add_Parameter(PL_Id, 'Doc_No_Fm', Text_Parameter, v_Doc_Fm);
#     Add_Parameter(PL_Id, 'Doc_No_To', Text_Parameter, v_Doc_To);
#     Add_Parameter(PL_Id, 'Divn', Text_Parameter, v_Divn);
#     Add_Parameter(PL_Id, 'Usr_Id', Text_Parameter, :Global.User);
#     Add_Parameter(PL_Id, 'Rep_Id', Text_Parameter, :Global.System_Product || '.' || :Parameter.Menu_Code);
#     Add_Parameter(PL_Id, 'Comp_Name', Text_Parameter, :Global.Company_Name);
#     Add_Parameter(Pl_Id, 'ParamForm', Text_Parameter, 'No');
#     v_Rep_Id := Find_Report_Object('Rep_Voucher');
#     :Frm_Rep_Desformat :=Fn_Get_Final_Txn_Param(v_Txn, :Global.Company, 'FINAL_REP_DESFORMAT');
#     :Frm_Printer := Fn_Get_Final_Txn_Param(v_Txn, :Global.Company, 'FINAL_TXN_PRINTER');
#     :Frm_Report  := Fn_Get_Final_Txn_Param(v_Txn, :Global.Company, 'FINAL_REPORT');
#     Set_Report_Object_Property(v_Rep_Id, Report_Comm_Mode, Synchronous);
#     Set_Report_Object_Property(v_Rep_Id, Report_Desformat, Nvl(:Frm_Rep_Desformat,'PDF'));
#     If Upper(:Mnu_Dest_Name) = 'PRINTER' Then
#       Set_Report_Object_Property(v_Rep_Id, Report_DesType, PRINTER);
#       If Nvl(:Frm_Printer,:Mnu_Printer_Name) Is Not Null Then
#         Set_Report_Object_Property(v_Rep_Id, Report_DesName, Nvl(:Frm_Printer,:Mnu_Printer_Name));
#       End If;
#     Else
#       Set_Report_Object_Property(v_Rep_Id, Report_DesType, CACHE);
#     End If;
#     Set_Report_Object_Property(v_Rep_Id, Report_Server, v_Rep_Server);
#     Set_Report_Object_Property(v_Rep_Id, Report_FileName, Nvl(:Frm_Report ,v_Report));
#     v_Rep_Job_Id := Run_Report_Object(v_Rep_Id, PL_Id);
#     v_Rep_Status := Report_Object_Status(v_Rep_Job_Id);
#     SET_CUSTOM_PROPERTY('CTRL.PRINTBEAN',1,'DEFAULT_PRINTER',:Mnu_Printer_Name);
#     If v_Rep_Status = 'FINISHED' Then
#       If Upper(:Mnu_Dest_Name) = 'PRINTER' Then
#         v_Job_Id := SubStr(v_Rep_Job_Id, length(v_Rep_Server)+2);
#         v_Rep_URL := 'http://' || v_Host_Name || ':' || v_Port || '/reports/rwservlet/getjobid' || v_Job_Id || '?server=' || v_Rep_Server;
#         Message(v_Rep_URL);
#         SET_CUSTOM_PROPERTY('CTRL.PRINTBEAN',1,'FILE_NAME',v_Rep_URL);
#         SET_CUSTOM_PROPERTY('CTRL.PRINTBEAN',1,'PRINT_FILE','');
#       Else
#         If Upper(:Mnu_Dest_Name) = 'CACHE' Then
#           v_Job_Id := SubStr(v_Rep_Job_Id, length(v_Rep_Server)+2);
#           v_Rep_URL := 'http://' || v_Host_Name || ':' || v_Port || '/reports/rwservlet/getjobid' || v_Job_Id || '?server=' || v_Rep_Server;
#           Message(v_Rep_URL);
#           Web.Show_Document(v_Rep_URL, '_blank');
#         End If;
#       End If;
#     Else
#       Message('Error Running Report');
#     End If;
#   End If;
#   reason: the guard reads the local V_DOC_FM, which a SELECT wrote that no reader claimed, so no source names the row it read: `SELECT MIN(TH_DOC_NO) ,MAX(TH_DOC_NO),TH_TXN_CODE,TH_AYR_CODE,TH_DIVN_...`

3 clauses converted, 2 statements refused

18. fmb_pay_supp_v1WHEN-BUTTON-PRESSED on T_PAY_HEAD.PB_MANUAL_LOADstudy
What you haveWHEN-BUTTON-PRESSED
Declare
  CURSOR Cur_Supp IS
  SELECT Supp_Code, Supp_Name, SuppB_Bank_Code Supp_Bank_Code, OS_Id Doc_OS_Id, OS_Final_Txn_Code Doc_Txn_Code, OS_Doc_No Doc_No, 
  OS_Invoice_No Invoice_No, OS_Invoice_Dt Doc_Dt, OS_Invoice_Due_Dt Due_Dt, OS_LC_Amt Orig_Amt, OS_Balance-Nvl(Os_Unconf_Pdc,0) - Nvl(Os_Payd_Amt,0) Bal, OS_Hold Doc_Hold, OS_DrCr_Flag DrCr_Flag 
  FROM T_OS, M_Supplier_Bank, M_Supplier
  WHERE OS_Comp_Code = :Global.Company
  AND OS_Main_Acnt_code = Supp_Main_Acnt_Code
  AND Sign(OS_Balance-Nvl(Os_Unconf_Pdc,0) - Nvl(Os_Payd_Amt,0)) = 1 
  AND OS_Invoice_Dt > :PayH_Process_Dt
  AND OS_DrCr_Flag = 'D'
  AND SuppB_Supp_Code=Supp_Code
  AND SuppB_Bank_Code=:Load_Supp_Bank_Code
  AND Supp_Code = :Load_Supp_Code
  AND Nvl(OS_Hold, 'N') <> 'Y'
  UNION ALL
  SELECT Supp_Code, Supp_Name, SuppB_Bank_Code Supp_Bank_Code, OS_Id Doc_OS_Id, OS_Final_Txn_Code Doc_Txn_Code, OS_Doc_No Doc_No, OS_Invoice_No Invoice_No, 
  OS_Invoice_Dt Doc_Dt, OS_Invoice_Due_Dt Due_Dt, OS_LC_Amt Orig_Amt, OS_Balance-Nvl(Os_Unconf_Pdc,0) - Nvl(Os_Payd_Amt,0) Bal, OS_Hold Doc_Hold, OS_DrCr_Flag DrCr_Flag 
  FROM T_OS, M_Supplier_Bank, M_Supplier
  WHERE OS_Comp_Code = :Global.Company
  AND OS_Main_Acnt_code = Supp_Main_Acnt_Code
  AND Sign(OS_Balance-Nvl(Os_Unconf_Pdc,0) - Nvl(Os_Payd_Amt,0)) = 1 
  --AND OS_Invoice_Due_Dt > :PayH_Process_Dt/*Calcualted due date based on the supplier credit days at run time -- see the below line */
  AND OS_Invoice_Dt + :Supp_Cr_Days > :PayH_Process_Dt
  AND OS_DrCr_Flag = 'C'
  AND SuppB_Supp_Code=Supp_Code
  AND SuppB_Bank_Code=:Load_Supp_Bank_Code
  AND Supp_Code = :Load_Supp_Code
  AND Nvl(OS_Hold, 'N') <> 'Y'
  order by 8;
  
  
  v_Curr_Block VarChar2(30);
  v_Confirm_Del Char(1) := 'N';
  v_Skip Char(1) := 'N';
  v_Alert Number;
  v_Bal   Number;
  v_Transit Number;
  v_Tot_Pay Number := 0;
  v_cnt  Number;
Begin
  If :Load_Supp_Code Is Null OR (:PayH_Pay_Mode in('B') and :Load_Supp_Bank_Code Is Null) 
      OR (:Load_Supp_Bank_Code Is Null And :PayH_Pay_Mode in('B')) Then
    Show_Message('Msg_Alert', 'Supplier or Bank cannot be null');
    Raise Form_Trigger_Failure;
  End If;
    If :Parameter.Supp_Active Is Not Null Then
      If :Load_Supp_Code<>:Parameter.Supp_Active Then
       :Parameter.Supp_Active:=:Load_Supp_Code;
      End If;
    Else
        :Parameter.Supp_Active:=:Load_Supp_Code;
    End If;
  --Clear Old Records of the supplier
  --Check if the supplier already loaded before
  v_Curr_Block := :System.Current_Block;
  
  Set_Block_Property('Ctrl_Pay_Detail', Insert_Allowed, Property_True);
  Set_Block_Property('Ctrl_Pay_Detail', Delete_Allowed, Property_True);
  Go_Block('Ctrl_Pay_Detail');
  
  First_Record;
  
  -------Janisha---------Check whether the supplier already loaded in manual load window----------------

    Last_Record;
    v_cnt :=:System.Trigger_Record;
    First_Record ;
   
    For i in 1..v_cnt
 
    Loop
   
    If :Ctrl_Pay_Detail.PayD_Supp_Code = :Load_Supp_Code Then
        Show_Message('Msg_Alert', 'Supplier Already Loaded');
          v_Skip := 'Y';
          Exit;
    End If;
    Next_Record;
  End Loop;
  ------------------18-05-2013
  Last_Record;
  If :Ctrl_Pay_Detail.PayD_Supp_Code is not null Then
    next_record;
  End If;
  
  ------------------18-05-2013
  
  
  If Nvl(v_Skip, 'N') = 'N' Then
    For c in Cur_Supp Loop
      v_Bal := c.Bal;
    
      --check if any unprocessed balance in supplier payment
      SELECT Sum(PayD_LC_Amt) INTO v_Transit
      FROM T_Pay_Head, T_Pay_Detail 
      WHERE PayH_Id = PayD_PayH_Id
      AND PayD_OS_Id = c.Doc_Os_Id
      AND (PayH_Approval_Status  /* ='P' */ IN ('P','V')--Include the documents in review status also
       AND PayH_Valid_Till >= Trunc(SysDate)
        OR   (PayH_Approval_Status IN ('F', 'N') AND Nvl(PayH_Process_Status, 'N') = 'N')
          AND PayH_Valid_Till >= Trunc(SysDate));
      
      v_Bal := v_Bal - Nvl(v_Transit, 0);
        If v_Bal > 0 Then
        If Nvl(:Load_Curr_Code, :Global.BaseCurrency) = :Global.BaseCurrency Then
          :Ctrl_Pay_Detail.PayD_Curr_Code := :Global.BaseCurrency;
          :Ctrl_Pay_Detail.PayD_Curr_Rate := 1;
        Else
          :Ctrl_Pay_Detail.PayD_Curr_Code := :Load_Curr_Code;
          :Ctrl_Pay_Detail.PayD_CUrr_Rate := :Load_Curr_Rate;
        End If;
  
        :Ctrl_Pay_Detail.PayD_Supp_Code := c.Supp_Code;
        :Ctrl_Pay_Detail.PayD_Supp_Bank_Code := c.Supp_Bank_Code;
        :Ctrl_Pay_Detail.Supp_Name := c.Supp_Name;
        :Ctrl_Pay_Detail.PayD_OS_Id := c.Doc_OS_Id;
        :Ctrl_Pay_Detail.OS_Txn_Code := c.Doc_Txn_Code;
        :Ctrl_Pay_Detail.OS_Doc_Dt := c.Doc_Dt;
        :Ctrl_Pay_Detail.OS_Invoice_No := c.Invoice_No;
        :Ctrl_Pay_Detail.OS_Due_Dt := c.Due_Dt;
        :Ctrl_Pay_Detail.PayD_Orig_LC_Amt := c.Orig_Amt;
        :Ctrl_Pay_Detail.PayD_Bal := v_Bal;
         :Ctrl_Pay_Detail.PayD_DrCr_Flag := C.DrCr_Flag;
 
    

        If Nvl(c.Doc_Hold, 'N') = 'Y' Then
          :Ctrl_Pay_Detail.PayD_FC_Amt := 0;
          :Ctrl_Pay_Detail.PayD_LC_Amt := 0;
          :Ctrl_Pay_Detail.PayD_Pay_Type := 'H';
        Else
          If Nvl(:Load_Max_Amt, 0) > 0 AND :Ctrl_Pay_Detail.PayD_DrCr_Flag = 'C' AND v_Bal > :Load_Max_Amt - v_Tot_Pay Then
            v_Bal := :Load_Max_Amt - v_Tot_Pay;
          End If;

          :Ctrl_Pay_Detail.PayD_LC_Amt := v_Bal;
          :Ctrl_Pay_Detail.PayD_Fc_Amt := v_Bal/Nvl(:Ctrl_Pay_Detail.PayD_Curr_Rate, 0);
          :Ctrl_Pay_Detail.PayD_Pay_Type := 'P';

          If :Ctrl_Pay_Detail.PayD_DrCr_Flag = 'D' Then
            v_Tot_Pay := v_Tot_Pay - Nvl(v_Bal, 0);
          Else
            v_Tot_Pay := v_Tot_Pay + Nvl(v_Bal, 0);
          End If;
          
          If Nvl(:Load_Max_Amt, 0) > 0 AND v_Tot_Pay >= Nvl(:Load_Max_Amt, 0) Then
            Exit;
          End If;
        End If;
        :Ctrl_Pay_Detail.PayD_Flag := 'M';
        :Ctrl_Pay_Detail.PayD_Cr_USer:= :Global.User;
        :Ctrl_Pay_Detail.PayD_Cr_Dt := SysDate;
      Next_Record;
      End If;
      End Loop;

  End If;
End;
What you getClause Rule Language
on press of PB_MANUAL_LOAD:    deny when (is_blank(LOAD_SUPP_CODE) or ((PAYH_PAY_MODE = 'B') and is_blank(LOAD_SUPP_BANK_CODE))) or (is_blank(LOAD_SUPP_BANK_CODE) and (PAYH_PAY_MODE = 'B')) else "Supplier or Bank cannot be null"    state unlock CTRL_PAY_DETAIL on insert, delete    go to CTRL_PAY_DETAIL    last record of T_PAY_HEAD    first record of T_PAY_HEAD    find first row in CTRL_PAY_DETAIL where PAYD_SUPP_CODE = LOAD_SUPP_CODE    last record of T_PAY_HEAD    next record of T_PAY_HEAD when is_filled(PAYD_SUPP_CODE)
# 3 statements did not convert.#   line 48
#   :Parameter.Supp_Active:=:Load_Supp_Code;
#   reason: set writes a field or a global and there is no third spelling, so a write to a form parameter is refused: item 20 rules a parameter read-only#   line 51
#   :Parameter.Supp_Active:=:Load_Supp_Code;
#   reason: set writes a field or a global and there is no third spelling, so a write to a form parameter is refused: item 20 rules a parameter read-only#   line 89
#   If Nvl(v_Skip, 'N') = 'N' Then
#     For c in Cur_Supp Loop
#         v_Bal := c.Bal;
#       
#          
#         SELECT Sum(PayD_LC_Amt) INTO v_Transit
#         FROM T_Pay_Head, T_Pay_Detail 
#         WHERE PayH_Id = PayD_PayH_Id
#         AND PayD_OS_Id = c.Doc_Os_Id
#         AND (PayH_Approval_Status    IN ('P','V') 
#          AND PayH_Valid_Till >= Trunc(SysDate)
#           OR   (PayH_Approval_Status IN ('F', 'N') AND Nvl(PayH_Process_Status, 'N') = 'N')
#             AND PayH_Valid_Till >= Trunc(SysDate));
#         
#         v_Bal := v_Bal - Nvl(v_Transit, 0);
#           If v_Bal > 0 Then
#           If Nvl(:Load_Curr_Code, :Global.BaseCurrency) = :Global.BaseCurrency Then
#             :Ctrl_Pay_Detail.PayD_Curr_Code := :Global.BaseCurrency;
#             :Ctrl_Pay_Detail.PayD_Curr_Rate := 1;
#           Else
#             :Ctrl_Pay_Detail.PayD_Curr_Code := :Load_Curr_Code;
#             :Ctrl_Pay_Detail.PayD_CUrr_Rate := :Load_Curr_Rate;
#           End If;
#     
#           :Ctrl_Pay_Detail.PayD_Supp_Code := c.Supp_Code;
#           :Ctrl_Pay_Detail.PayD_Supp_Bank_Code := c.Supp_Bank_Code;
#           :Ctrl_Pay_Detail.Supp_Name := c.Supp_Name;
#           :Ctrl_Pay_Detail.PayD_OS_Id := c.Doc_OS_Id;
#           :Ctrl_Pay_Detail.OS_Txn_Code := c.Doc_Txn_Code;
#           :Ctrl_Pay_Detail.OS_Doc_Dt := c.Doc_Dt;
#           :Ctrl_Pay_Detail.OS_Invoice_No := c.Invoice_No;
#           :Ctrl_Pay_Detail.OS_Due_Dt := c.Due_Dt;
#           :Ctrl_Pay_Detail.PayD_Orig_LC_Amt := c.Orig_Amt;
#           :Ctrl_Pay_Detail.PayD_Bal := v_Bal;
#            :Ctrl_Pay_Detail.PayD_DrCr_Flag := C.DrCr_Flag;
#    
#       
#   
#           If Nvl(c.Doc_Hold, 'N') = 'Y' Then
#             :Ctrl_Pay_Detail.PayD_FC_Amt := 0;
#             :Ctrl_Pay_Detail.PayD_LC_Amt := 0;
#             :Ctrl_Pay_Detail.PayD_Pay_Type := 'H';
#           Else
#             If Nvl(:Load_Max_Amt, 0) > 0 AND :Ctrl_Pay_Detail.PayD_DrCr_Flag = 'C' AND v_Bal > :Load_Max_Amt - v_Tot_Pay Then
#               v_Bal := :Load_Max_Amt - v_Tot_Pay;
#             End If;
#   
#             :Ctrl_Pay_Detail.PayD_LC_Amt := v_Bal;
#             :Ctrl_Pay_Detail.PayD_Fc_Amt := v_Bal/Nvl(:Ctrl_Pay_Detail.PayD_Curr_Rate, 0);
#             :Ctrl_Pay_Detail.PayD_Pay_Type := 'P';
#   
#             If :Ctrl_Pay_Detail.PayD_DrCr_Flag = 'D' Then
#               v_Tot_Pay := v_Tot_Pay - Nvl(v_Bal, 0);
#             Else
#               v_Tot_Pay := v_Tot_Pay + Nvl(v_Bal, 0);
#             End If;
#             
#             If Nvl(:Load_Max_Amt, 0) > 0 AND v_Tot_Pay >= Nvl(:Load_Max_Amt, 0) Then
#               Exit;
#             End If;
#           End If;
#           :Ctrl_Pay_Detail.PayD_Flag := 'M';
#           :Ctrl_Pay_Detail.PayD_Cr_USer:= :Global.User;
#           :Ctrl_Pay_Detail.PayD_Cr_Dt := SysDate;
#         Next_Record;
#         End If;
#         End Loop;
#   End If;
#   reason: the guard reads the local V_SKIP, which a loop body above it writes, so what it holds here depends on which iteration ran last

8 clauses converted, 3 statements refused

19. fmb_pay_supp_v1KEY-COMMIT on FMB_PAY_SUPPstudy
What you haveKEY-COMMIT
DECLARE
   pl_id   paramlist;
   v_Enable_Pay Varchar2(10);
   v_Count   Number;
--------------------------
BEGIN
  --If :PayH_Pay_Mode = 'C' Then
    If Round(nvl(:Supp_Statement_Net,0),2) <> Round(Nvl(:T_pay_detail.Net_Pay_Amt,0),2)  Then
      Show_Message ('Msg_Alert', 'Amount not tally');
      Raise Form_Trigger_Failure;
    End if;
  --End If;

    If :PayH_Payment_Dt is Null Then
       Show_Message('Msg_Alert', 'Payment date cannot be null');
       Raise Form_Trigger_Failure;  
    End If;
    
    If :PayH_Process_Dt is Null Then
       Show_Message('Msg_Alert', 'Process date cannot be null');
       Raise Form_Trigger_Failure;  
    End If;


  If :Payh_Pay_Mode = 'T' and Nvl(:PayH_Supp_Tt_Amt,0) =0   Then
     Show_Message('Msg_Alert', 'TT Amount cannot be zero');
     Raise Form_Trigger_Failure;  
  End If;

  
  IF :SYSTEM.form_status = 'CHANGED'   THEN

  v_Enable_Pay := Fn_Get_Main_Acnt_Param(:PayH_Bank_Main_Acnt_Code, :Global.Company, 'ENABLE_SUP_PAY');
  If Nvl(v_Enable_Pay, 'N') <> 'Y' and :Payh_Pay_Mode ='B' Then
    Show_Message('Msg_Alert', 'Supplier Payment Not Enabled for This Account!');
    Raise Form_Trigger_Failure;
  End If;

    
     Go_Block('T_Pay_Detail');
     First_Record;
    Loop
  
      If :System.Last_Record='TRUE' Then
        Exit;
      End If;
 
       Next_Record;
    End Loop;

      
    IF FORM_SUCCESS THEN
      -----------------------------------
     
       If :Parameter.Supp_Active Is Not Null Then
         If :Sup_Pay_Tot Is Not Null  Then
          
          :T_Pay_Head.Payh_Sup_Tot:=    :Sup_Pay_Tot;
        End If;
       End If;
    
      If :Parameter.Supp_Active is Not Null Then
        If :PayH_Sup_Tot<=0 Then  /*Janisha*/--To prevent a document to get saved with zero or negative amount for a particular supplier
                   Show_Message('Msg_Alert', 'Supplier '||:parameter.Supp_Active ||' Failed Validation.Pay Amount goes  '||:PayH_Sup_Tot);
           Raise Form_Trigger_Failure;
          End If;
        End If;
         If nvl(:T_Pay_Detail.Tot_Pay_Amt,0) <=0 Then /*Janisha*/--To prevent a document to get saved with zero or negative amount.
          Show_Message('Msg_Alert', 'Payment Amount Cannot be Zero or Negative');
        Raise Form_Trigger_Failure;
         End If;
         -----------------------------------------------------
        
      COMMIT;
      Select Count(*) into v_Count from wt_Pay_Head
      Where PayH_Comp_Code =:Global.Company
      And Payh_Divn_Code =:Payh_Divn_Code
      And PayH_Supp_Code = :Load_Supp_Code
      And PayH_Process_Dt = :PayH_Process_Dt
      And Nvl(PayH_Load_Flag,'N') ='N';
      If v_Count > 0 Then
        Update  wt_Pay_Head set PayH_Load_Flag ='Y'
        Where PayH_Comp_Code =:Global.Company
        And Payh_Divn_Code =:Payh_Divn_Code
        And PayH_Supp_Code = :Load_Supp_Code
        And PayH_Process_Dt = :PayH_Process_Dt
        And Nvl(PayH_Load_Flag,'N') ='N';
        Standard.commit;
      End If;
      
      IF :SYSTEM.form_status <> 'QUERY' THEN     -- added by rincy to check commit_form success
         
        RAISE form_trigger_failure;
      END IF;
    END IF;
  END IF;

   --EXIT_FORM;
   
  --Print automatically if default value set to print, document approved, and not printed already
/*
  select count(*) INTO :Prn_Count From Txn_Print_Log
  Where Log_Comp_Code =:GrH_Comp_Code
  and Log_Loc_Code =:GrH_Loc_Code
  and Log_Ayr_Code =:GrH_Ayr_Code
  and Log_Txn_Code =:GrH_Txn_Code
  and :GrH_NO Between log_No_From and Log_No_To;
     
  If Nvl(:Prn_Count, 0) = 0 AND Nvl(:Frm_Skip_Print, 'N') = 'N' Then
    PL_Id := Get_Parameter_List(v_report);
    If Not Id_Null(Pl_Id) Then
      Destroy_Parameter_List(Pl_Id);
    End If;
  
    PL_Id := Create_Parameter_List(v_report);

    Add_Parameter(PL_Id, 'Parm_Comp_Code', TEXT_PARAMETER, :Grh_Comp_Code);
    Add_Parameter(PL_Id, 'Parm_Loc_Code', TEXT_PARAMETER, :GRH_Loc_Code);
    Add_Parameter(PL_Id, 'Parm_Txn_Code', TEXT_PARAMETER, :GRH_Txn_Code);
    Add_Parameter(PL_Id, 'Parm_AYr_Code', TEXT_PARAMETER, :GRH_AYr_Code);
    Add_Parameter(PL_Id, 'Parm_No_From', TEXT_PARAMETER, :GRH_No);
    Add_Parameter(PL_Id, 'Parm_No_To', TEXT_PARAMETER, :GRH_No);
    Add_Parameter(PL_Id, 'Parm_User', Text_Parameter, :Global.User);
    Add_Parameter(Pl_Id, 'ParamForm', Text_Parameter, 'No');
    --Add_Parameter(Pl_Id, 'DesType', Text_Parameter, 'Printer');
    Add_Parameter(PL_Id, 'Rep_Id', Text_Parameter, :Global.System_Product || '.' || :Parameter.Menu_Code);
    Add_Parameter(PL_Id, 'Comp_Name', Text_Parameter, :Global.Company_Name);
    
            
   --Find Report Object
    v_Rep_Id := Find_Report_Object('print_grn');
    
    --Communication Mode
    Set_Report_Object_Property(v_Rep_Id, Report_Comm_Mode, Synchronous);
    Set_Report_Object_Property(v_Rep_Id, Report_Desformat, 'PDF');

  --Handled Destination Type and Name
    If :Frm_Printer_Name Is Not Null Then
      Set_Report_Object_Property(v_Rep_Id, Report_DesName, :Frm_Printer_Name);
    --End If;
    Else      
      Set_Report_Object_Property(v_Rep_Id, Report_DesType, CACHE);
    End If;
 
  --Specify Report Server and Report File Name
    Set_Report_Object_Property(v_Rep_Id, Report_Server, v_Rep_Server);
    Set_Report_Object_Property(v_Rep_Id, Report_FileName, v_Report);
    
     
  --Run Report
    v_Rep_Job_Id := Run_Report_Object(v_Rep_Id, PL_Id);
    v_Rep_Status := Report_Object_Status(v_Rep_Job_Id);


  If v_Rep_Status = 'FINISHED' Then
    If Upper(:DesType) = 'CACHE' Then
      v_Job_Id := SubStr(v_Rep_Job_Id, length(v_Rep_Server)+2);
  
      v_Rep_URL := 'http://' || v_Host_Name || ':' || v_Port || '/reports/rwservlet/getjobid' || v_Job_Id || '?server=' || v_Rep_Server;
                Message(v_Rep_URL);
      Web.Show_Document(v_Rep_URL, '_blank');
    End If;
  Else
    Message('Error Running Report');
  End If;
  
    Clear_Form;
    Init_Form;
  End If;
 Exception
  When Others then Show_Message('Alert1', ERROR_CODE || ' ' || ERROR_TEXT);
  */
End;
What you getClause Rule Language
on commit:    deny when round(nvl(SUPP_STATEMENT_NET, 0), 2) <> round(nvl(NET_PAY_AMT, 0), 2) else "Amount not tally"    require PAYH_PAYMENT_DT else "Payment date cannot be null"    require PAYH_PROCESS_DT else "Process date cannot be null"    deny when (PAYH_PAY_MODE = 'T') and (nvl(PAYH_SUPP_TT_AMT, 0) = 0) else "TT Amount cannot be zero"    deny when (SYSTEM.FORM_STATUS = 'CHANGED') and ((nvl(FN_GET_MAIN_ACNT_PARAM(PAYH_BANK_MAIN_ACNT_CODE, GLOBAL.COMPANY, 'ENABLE_SUP_PAY'), 'N') <> 'Y') and (PAYH_PAY_MODE = 'B')) else "Supplier Payment Not Enabled for This Account!"    go to T_PAY_DETAIL when SYSTEM.FORM_STATUS = 'CHANGED'
# 2 statements did not convert.#   line 42
#   Loop
#     
#         If :System.Last_Record='TRUE' Then
#           Exit;
#         End If;
#    
#          Next_Record;
#       End Loop;
#   reason: nothing in it converts to a clause, so what it did per row is not recorded#   line 52
#   If FORM_SUCCESS Then
#     If :Parameter.Supp_Active Is Not Null Then
#       If :Sup_Pay_Tot Is Not Null Then
#         :T_Pay_Head.Payh_Sup_Tot:=    :Sup_Pay_Tot;
#       End If;
#     End If;
#     If :Parameter.Supp_Active is Not Null Then
#       If :PayH_Sup_Tot<=0 Then
#         Show_Message('Msg_Alert', 'Supplier '||:parameter.Supp_Active ||' Failed Validation.Pay Amount goes  '||:PayH_Sup_Tot);
#         Raise Form_Trigger_Failure;
#       End If;
#     End If;
#     If nvl(:T_Pay_Detail.Tot_Pay_Amt,0) <=0 Then
#       Show_Message('Msg_Alert', 'Payment Amount Cannot be Zero or Negative');
#       Raise Form_Trigger_Failure;
#     End If;
#     COMMIT;
#     Select Count(*) into v_Count from wt_Pay_Head
#         Where PayH_Comp_Code =:Global.Company
#         And Payh_Divn_Code =:Payh_Divn_Code
#         And PayH_Supp_Code = :Load_Supp_Code
#         And PayH_Process_Dt = :PayH_Process_Dt
#         And Nvl(PayH_Load_Flag,'N') ='N';
#     If v_Count > 0 Then
#       Update  wt_Pay_Head set PayH_Load_Flag ='Y'
#           Where PayH_Comp_Code =:Global.Company
#           And Payh_Divn_Code =:Payh_Divn_Code
#           And PayH_Supp_Code = :Load_Supp_Code
#           And PayH_Process_Dt = :PayH_Process_Dt
#           And Nvl(PayH_Load_Flag,'N') ='N';
#       Standard.commit;
#     End If;
#     If :SYSTEM.form_status <> 'QUERY' Then
#       RAISE form_trigger_failure;
#     End If;
#   End If;
#   reason: the guard reads FORM_SUCCESS, which is one of Forms' own constants and not a value: CRL has no expression for what a property or an alert button is called

6 clauses converted, 2 statements refused

20. fmb_pay_supp_v1WHEN-BUTTON-PRESSED on T_PAY_HEAD.PB_LOADstudy
What you haveWHEN-BUTTON-PRESSED
Declare
   Cursor Cur_Supp
   Is
      Select   Supp_Code, Substr(Supp_Name, 1, 95) Supp_Name, Suppb_Bank_Code Supp_Bank_Code,
               Os_Divn_Code Doc_Divn_Code, Os_Id Doc_Os_Id, Os_Final_Txn_Code Doc_Txn_Code,
               Os_Doc_No Doc_No, Substr(Os_Invoice_No,1,25) Invoice_No,
               Os_Invoice_Dt Doc_Dt, Os_Invoice_Due_Dt Due_Dt,
               Os_Lc_Amt Orig_Amt, OS_Balance-Nvl(Os_Unconf_Pdc,0) - Nvl(Os_Payd_Amt,0) Bal, Os_Hold Doc_Hold,
               Os_Drcr_Flag Drcr_Flag
          From T_Os, M_Supplier_Bank, M_Supplier
         Where Os_Comp_Code = :Global.Company
           And Os_Main_Acnt_Code = Supp_Main_Acnt_Code
           And Sign (Os_Balance-Nvl(Os_Unconf_Pdc,0) - Nvl(Os_Payd_Amt,0)) = 1
           And Os_Invoice_Dt  + (:Supp_Cr_Days -Nvl(:Adj_Days,0))  <= :Payh_Process_Dt
           And Os_Drcr_Flag = 'D'
           And Suppb_Supp_Code(+) = Supp_Code
           And decode(:PayH_Pay_Mode, 'B',Suppb_Bank_Code,'~') = decode(:PayH_Pay_Mode, 'B',:Load_Supp_Bank_Code,'~') --srisankar decode added for chq processing
           And Supp_Code = :Load_Supp_Code
           And Nvl (Os_Hold, 'N') <> 'Y'
           And (:divn is Null or Os_Divn_Code =:Divn)
      Union All
      Select   Supp_Code, Substr(Supp_Name, 1, 95) Supp_Name, Suppb_Bank_Code Supp_Bank_Code,
               Os_Divn_Code Doc_Divn_Code, Os_Id Doc_Os_Id, Os_Final_Txn_Code Doc_Txn_Code,
               Os_Doc_No Doc_No, Substr(Os_Invoice_No,1,25) Invoice_No,
               Os_Invoice_Dt Doc_Dt, Os_Invoice_Due_Dt Due_Dt,
               Os_Lc_Amt Orig_Amt, OS_Balance-Nvl(Os_Unconf_Pdc,0) - Nvl(Os_Payd_Amt,0) Bal, Os_Hold Doc_Hold,
               Os_Drcr_Flag Drcr_Flag
          From T_Os, M_Supplier_Bank, M_Supplier
         Where Os_Comp_Code = :Global.Company
           And Os_Main_Acnt_Code = Supp_Main_Acnt_Code
           And Sign (Os_Balance- Nvl(Os_Unconf_Pdc,0) - Nvl(Os_Payd_Amt,0)) = 1
           --And Os_Invoice_Due_Dt <= :Payh_Process_Dt  --Calcualted Due Date Based On The Supplier Credit Days At Run Time -- See The Below Line 
           And Os_Invoice_Dt + (:Supp_Cr_Days -Nvl(:Adj_Days,0)) <= :Payh_Process_Dt
           And Os_Drcr_Flag = 'C'
           And Suppb_Supp_Code(+) = Supp_Code
           And decode(:PayH_Pay_Mode, 'B',Suppb_Bank_Code,'~') = decode(:PayH_Pay_Mode, 'B',:Load_Supp_Bank_Code,'~')  --srisankar decode added for chq processing
           And Supp_Code = :Load_Supp_Code
           And Nvl (Os_Hold, 'N') <> 'Y'
           And (:divn is Null or Os_Divn_Code =:Divn)
      Order By 9;   



   V_Curr_Block    Varchar2(30);
   V_Confirm_Del   Char (1)      := 'N';
   V_Skip          Char (1)      := 'N';
   V_Alert         Number;
   V_Bal           Number;
   V_Transit       Number;
   V_Tot_Pay       Number        := 0;
   --Jabir/Temp/To Remove After Automatching
   V_Ctr           Number        := 0;
   ---18-05-2013
   V_Cnt           Number        := 0;
   v_lcnt          Number         :=0;
Begin
  If :Parameter.Supp_Active Is Not Null Then
    If :Load_Supp_Code<>:Parameter.Supp_Active Then
      :Parameter.Supp_Active:=:Load_Supp_Code;
    End If;
  Else
    :Parameter.Supp_Active:=:Load_Supp_Code;
  End If;
  
  
  
  If  :Load_Supp_Code Is Null Or (:PayH_Pay_Mode in('B') and :Load_Supp_Bank_Code Is Null) Then 
    Show_Message ('Msg_Alert', 'Supplier Or Bank Cannot Be Null');
    Raise Form_Trigger_Failure;
  End If;
   
 
  V_Curr_Block := :System.Current_Block;
  Set_Block_Property ('T_Pay_Detail', Insert_Allowed, Property_True);
  Set_Block_Property ('T_Pay_Detail', Delete_Allowed, Property_True);
  Go_Block ('T_Pay_Detail');
  First_Record;
  Last_Record;
  V_Cnt := :System.Trigger_Record;
  First_Record;
  V_Confirm_Del := 'N';
   
  
   
  For I In 1 .. V_Cnt  Loop
    If :System.Last_Record = 'True' Then
      Exit;
    End If;
    
    If (:T_Pay_Detail.Payd_Supp_Code = :Load_Supp_Code) /*16-05-2013*/ And (:T_Pay_Detail.Payd_Flag Not In ('M', 'R')) /*16-05-2013*/ Then
      If Nvl (V_Confirm_Del, 'N') = 'N' Then
        V_Alert := Show_Alert ('Confirm_Supp_Load_Again');
      
        If V_Alert = Alert_Button2 Then
          V_Skip := 'Y';
          Exit;
        End If;
        V_Confirm_Del := 'Y';
      End If;
      
      Delete_Record;
    Else
      Next_Record;
    End If;
  End Loop;
  
  If (:T_Pay_Detail.Payd_Supp_Code = :Load_Supp_Code) And :T_Pay_Detail.Payd_Flag Not In ('M', 'R') Then
    Delete_Record;
  End If;
  
  If :T_Pay_Detail.Payd_Supp_Code Is Not Null Then
    Next_Record;
  End If;

  
  
  :System.Message_Level := '10';
  
  If Nvl (V_Skip, 'N') = 'N' Then
    For C In Cur_Supp  Loop  
      V_Bal := C.Bal;
      Select Sum (Payd_Lc_Amt) Into V_Transit
      From T_Pay_Head, T_Pay_Detail
      Where Payh_Id = Payd_Payh_Id
      And Payd_Os_Id = C.Doc_Os_Id
      And (Payh_Approval_Status IN ('P','V') And Payh_Valid_Till >= To_Date (Sysdate, 'DD-Mon-YY')
      Or (Payh_Approval_Status In ('F', 'N') And Nvl (Payh_Process_Status, 'N') = 'N')
      And Payh_Valid_Till >= To_Date (Sysdate, 'DD-Mon-YY'));
      
      V_Bal := V_Bal - Nvl (V_Transit, 0);
      
      If V_Bal > 0 Then
        If Nvl (:Load_Curr_Code, :Global.Basecurrency) =:Global.Basecurrency Then
          :T_Pay_Detail.Payd_Curr_Code := :Global.Basecurrency;
          :T_Pay_Detail.Payd_Curr_Rate := 1;
        Else
          :T_Pay_Detail.Payd_Curr_Code := :Load_Curr_Code;
          :T_Pay_Detail.Payd_Curr_Rate := :Load_Curr_Rate;
        End If;
      
        :T_Pay_Detail.Payd_Supp_Code := C.Supp_Code;
        :T_Pay_Detail.Payd_Supp_Bank_Code := C.Supp_Bank_Code;
        :T_Pay_Detail.Supp_Name := C.Supp_Name;
        :T_Pay_Detail.Payd_Divn_Code := C.Doc_Divn_Code;
        :T_Pay_Detail.Payd_Os_Id := C.Doc_Os_Id;
        :T_Pay_Detail.Os_Txn_Code := C.Doc_Txn_Code;
        :T_Pay_Detail.Os_Doc_Dt := C.Doc_Dt;
        :T_Pay_Detail.Os_Invoice_No := C.Invoice_No;
        :T_Pay_Detail.Os_Due_Dt := C.Due_Dt;
        :T_Pay_Detail.Payd_Orig_Lc_Amt := C.Orig_Amt;
        :T_Pay_Detail.Payd_Bal := v_Bal;
        :T_Pay_Detail.Payd_Drcr_Flag := C.Drcr_Flag;
        v_lcnt   :=v_lcnt+1;
        
        If (C.Doc_Dt + (:Supp_Cr_Days - Nvl(:Adj_Days,0))) > :PayH_Process_Dt Then
          If Nvl(:Frm_En_Early_Pay,'N') ='Y' and C.Drcr_Flag ='C' Then
            :T_Pay_Detail.Payd_Early_Pay_Disc_Perc :=:Frm_Early_Pay_Disc; 
          End If;
        End If;
        
        If Nvl (C.Doc_Hold, 'N') = 'Y' Then
          :T_Pay_Detail.Payd_Fc_Amt := 0;
          :T_Pay_Detail.Payd_Lc_Amt := 0;
          :T_Pay_Detail.Payd_Pay_Type := 'H';
        Else
          If  Nvl (:Load_Max_Amt, 0) > 0 And :T_Pay_Detail.Payd_Drcr_Flag = 'C' And V_Bal > :Load_Max_Amt - V_Tot_Pay Then
            V_Bal := :Load_Max_Amt - V_Tot_Pay;
          End If;
      
          :T_Pay_Detail.Payd_Lc_Amt := V_Bal;
          :T_Pay_Detail.Payd_Fc_Amt := V_Bal / Nvl (:T_Pay_Detail.Payd_Curr_Rate, 0);
          :T_Pay_Detail.Payd_Pay_Type := 'P';
      
          If :T_Pay_Detail.Payd_Drcr_Flag = 'D'  Then
            V_Tot_Pay := V_Tot_Pay - Nvl (V_Bal, 0);
          Else
            V_Tot_Pay := V_Tot_Pay + Nvl (V_Bal, 0);
          End If;
      
          If Nvl (:Load_Max_Amt, 0) > 0  And V_Tot_Pay >= Nvl (:Load_Max_Amt, 0)  Then
            Exit;
          End If;
        End If;
      
        :T_Pay_Detail.Payd_Flag := 'A';
        :T_Pay_Detail.Payd_Cr_User := :Global.User;
        :T_Pay_Detail.Payd_Cr_Dt := Sysdate;
        Next_Record;
      End If;
    End Loop;
  End If;
  
  First_Record;
  If v_lcnt>0 Then
    Proc_Insert_Update_Setting;
    :Parameter.Oth :='N';
    Set_Item_Property('PB_Oth', Enabled, Property_False);
  End If;
  
  Set_Item_Property('Load_Supp_Code', Enabled, Property_False);
  Set_Block_Property ('T_Pay_Detail', Insert_Allowed, Property_True);
  Set_Block_Property ('T_Pay_Detail', Delete_Allowed, Property_False);
  Set_Block_Property ('T_Pay_Detail', Update_Allowed, Property_True);
  
  Go_Block (V_Curr_Block);
End;
What you getClause Rule Language
on press of PB_LOAD:    deny when is_blank(LOAD_SUPP_CODE) or ((PAYH_PAY_MODE = 'B') and is_blank(LOAD_SUPP_BANK_CODE)) else "Supplier Or Bank Cannot Be Null"    state unlock T_PAY_DETAIL on insert, delete    go to T_PAY_DETAIL    last record of T_PAY_HEAD    first record of T_PAY_HEAD    next record of T_PAY_HEAD when is_filled(PAYD_SUPP_CODE)    first record of T_PAY_HEAD    state disable LOAD_SUPP_CODE    state unlock T_PAY_DETAIL on insert    state lock T_PAY_DETAIL on delete    state unlock T_PAY_DETAIL on update
# 7 statements did not convert.#   line 59
#   :Parameter.Supp_Active:=:Load_Supp_Code;
#   reason: set writes a field or a global and there is no third spelling, so a write to a form parameter is refused: item 20 rules a parameter read-only#   line 62
#   :Parameter.Supp_Active:=:Load_Supp_Code;
#   reason: set writes a field or a global and there is no third spelling, so a write to a form parameter is refused: item 20 rules a parameter read-only#   line 85
#   For I In 1 .. V_Cnt  Loop
#       If :System.Last_Record = 'True' Then
#         Exit;
#       End If;
#       
#       If (:T_Pay_Detail.Payd_Supp_Code = :Load_Supp_Code)   And (:T_Pay_Detail.Payd_Flag Not In ('M', 'R'))   Then
#         If Nvl (V_Confirm_Del, 'N') = 'N' Then
#           V_Alert := Show_Alert ('Confirm_Supp_Load_Again');
#         
#           If V_Alert = Alert_Button2 Then
#             V_Skip := 'Y';
#             Exit;
#           End If;
#           V_Confirm_Del := 'Y';
#         End If;
#         
#         Delete_Record;
#       Else
#         Next_Record;
#       End If;
#     End Loop;
#   reason: it walks until a row matches and stops there, and the test it stops on names something CRL has no expression node for, so which row it chose is not stated#   line 108
#   Delete_Record;
#   reason: DELETE_RECORD is a Forms built-in, which no FormConnect document declares because no database holds it, and no program unit of this form declares one either, so there is no body to inline under the caller's point and item and nothing to bridge to#   line 119
#   If Nvl (V_Skip, 'N') = 'N' Then
#     For C In Cur_Supp  Loop  
#         V_Bal := C.Bal;
#         Select Sum (Payd_Lc_Amt) Into V_Transit
#         From T_Pay_Head, T_Pay_Detail
#         Where Payh_Id = Payd_Payh_Id
#         And Payd_Os_Id = C.Doc_Os_Id
#         And (Payh_Approval_Status IN ('P','V') And Payh_Valid_Till >= To_Date (Sysdate, 'DD-Mon-YY')
#         Or (Payh_Approval_Status In ('F', 'N') And Nvl (Payh_Process_Status, 'N') = 'N')
#         And Payh_Valid_Till >= To_Date (Sysdate, 'DD-Mon-YY'));
#         
#         V_Bal := V_Bal - Nvl (V_Transit, 0);
#         
#         If V_Bal > 0 Then
#           If Nvl (:Load_Curr_Code, :Global.Basecurrency) =:Global.Basecurrency Then
#             :T_Pay_Detail.Payd_Curr_Code := :Global.Basecurrency;
#             :T_Pay_Detail.Payd_Curr_Rate := 1;
#           Else
#             :T_Pay_Detail.Payd_Curr_Code := :Load_Curr_Code;
#             :T_Pay_Detail.Payd_Curr_Rate := :Load_Curr_Rate;
#           End If;
#         
#           :T_Pay_Detail.Payd_Supp_Code := C.Supp_Code;
#           :T_Pay_Detail.Payd_Supp_Bank_Code := C.Supp_Bank_Code;
#           :T_Pay_Detail.Supp_Name := C.Supp_Name;
#           :T_Pay_Detail.Payd_Divn_Code := C.Doc_Divn_Code;
#           :T_Pay_Detail.Payd_Os_Id := C.Doc_Os_Id;
#           :T_Pay_Detail.Os_Txn_Code := C.Doc_Txn_Code;
#           :T_Pay_Detail.Os_Doc_Dt := C.Doc_Dt;
#           :T_Pay_Detail.Os_Invoice_No := C.Invoice_No;
#           :T_Pay_Detail.Os_Due_Dt := C.Due_Dt;
#           :T_Pay_Detail.Payd_Orig_Lc_Amt := C.Orig_Amt;
#           :T_Pay_Detail.Payd_Bal := v_Bal;
#           :T_Pay_Detail.Payd_Drcr_Flag := C.Drcr_Flag;
#           v_lcnt   :=v_lcnt+1;
#           
#           If (C.Doc_Dt + (:Supp_Cr_Days - Nvl(:Adj_Days,0))) > :PayH_Process_Dt Then
#             If Nvl(:Frm_En_Early_Pay,'N') ='Y' and C.Drcr_Flag ='C' Then
#               :T_Pay_Detail.Payd_Early_Pay_Disc_Perc :=:Frm_Early_Pay_Disc; 
#             End If;
#           End If;
#           
#           If Nvl (C.Doc_Hold, 'N') = 'Y' Then
#             :T_Pay_Detail.Payd_Fc_Amt := 0;
#             :T_Pay_Detail.Payd_Lc_Amt := 0;
#             :T_Pay_Detail.Payd_Pay_Type := 'H';
#           Else
#             If  Nvl (:Load_Max_Amt, 0) > 0 And :T_Pay_Detail.Payd_Drcr_Flag = 'C' And V_Bal > :Load_Max_Amt - V_Tot_Pay Then
#               V_Bal := :Load_Max_Amt - V_Tot_Pay;
#             End If;
#         
#             :T_Pay_Detail.Payd_Lc_Amt := V_Bal;
#             :T_Pay_Detail.Payd_Fc_Amt := V_Bal / Nvl (:T_Pay_Detail.Payd_Curr_Rate, 0);
#             :T_Pay_Detail.Payd_Pay_Type := 'P';
#         
#             If :T_Pay_Detail.Payd_Drcr_Flag = 'D'  Then
#               V_Tot_Pay := V_Tot_Pay - Nvl (V_Bal, 0);
#             Else
#               V_Tot_Pay := V_Tot_Pay + Nvl (V_Bal, 0);
#             End If;
#         
#             If Nvl (:Load_Max_Amt, 0) > 0  And V_Tot_Pay >= Nvl (:Load_Max_Amt, 0)  Then
#               Exit;
#             End If;
#           End If;
#         
#           :T_Pay_Detail.Payd_Flag := 'A';
#           :T_Pay_Detail.Payd_Cr_User := :Global.User;
#           :T_Pay_Detail.Payd_Cr_Dt := Sysdate;
#           Next_Record;
#         End If;
#       End Loop;
#   End If;
#   reason: the guard reads the local V_SKIP, which a loop body above it writes, so what it holds here depends on which iteration ran last#   line 194
#   If v_lcnt>0 Then
#     Proc_Insert_Update_Setting;
#     :Parameter.Oth :='N';
#     Set_Item_Property('PB_Oth', Enabled, Property_False);
#   End If;
#   reason: the guard reads the local V_LCNT, which a branch above it writes on one path only, so what it holds here depends on which path ran#   line 205
#   Go_Block (V_Curr_Block);
#   reason: Go_Block names no block this form declares, so the clause would move the screen to somewhere that is not there

11 clauses converted, 7 statements refused

21. fmb_pay_supp_v1WHEN-BUTTON-PRESSED on T_PAY_HEAD.LOAD_DRAFT_BTNstudy
What you haveWHEN-BUTTON-PRESSED
Declare



  Cursor Cur_Supp
  Is
    Select Supp_Name, Suppb_Bank_Code Supp_Bank_Code,
    Os_Id Doc_Os_Id, Os_Final_Txn_Code Doc_Txn_Code,
    Os_Doc_No Doc_No, Os_Invoice_No Invoice_No,
    Os_Invoice_Dt Doc_Dt, Os_Invoice_Due_Dt Due_Dt,
    Os_Lc_Amt Orig_Amt, OS_Balance-Nvl(Os_Unconf_Pdc,0) - Nvl(Os_Payd_Amt,0) Bal, Os_Hold Doc_Hold,
    Os_Drcr_Flag Drcr_Flag,Payh_Supp_Stmt_Amt,
    Payd_Id, Payd_Payh_Id, Payd_Process_Flag, 
     Payd_Supp_Code, Payd_Supp_Bank_Code, Payd_Os_Id, 
    Payd_Drcr_Flag, Payd_Orig_Lc_Amt, Payd_Bal, 
     Payd_Disc_Perc, Payd_Pay_Type, Payd_Curr_Code, 
     Payd_Fc_Amt, Payd_Lc_Amt, Payd_Flag, 
     Payd_Rem, Payd_Cr_User, Payd_Cr_Dt, 
     Payd_Edt_User, Payd_Edt_Dt, Payd_Remarks, 
     Payd_Ticked        
    From Wt_Pay_Head,Wt_Pay_Detail,M_Supplier,T_Os, M_Supplier_Bank
         Where Payh_Id =Payd_Payh_id 
           and    Payd_Os_Id =Os_Id
           and Payh_Supp_Code =Supp_Code
           and PayH_Comp_Code = :Global.Company
           And PayH_Supp_Code = :Load_Supp_Code
           And PayH_Process_Dt = :PayH_Process_Dt
           And Payh_Divn_Code =:Payh_Divn_Code
           And Suppb_Supp_Code(+) = Supp_Code
           And decode(:PayH_Pay_Mode, 'B',Suppb_Bank_Code,'~') = decode(:PayH_Pay_Mode, 'B',:Load_Supp_Bank_Code,'~')
   Order By Payd_Id;   


  Cursor Cur_Suppstmt
  Is  Select  Paysd_Id, Paysd_Payh_Id, Paysd_Txn_Type, 
       Paysd_Doc_Dt, Paysd_Doc_No, Paysd_Ref, 
       Paysd_Drcr_Flag, Paysd_Actual_Amt, Paysd_Req_Amt, 
       Paysd_Adj_Amt, Paysd_Remarks, Paysd_Cr_User, 
       Paysd_Cr_Dt, Paysd_Edt_User, Paysd_Edt_Dt, 
       Paysd_Os_Id From Wt_Pay_Head,Wt_Suppstmt_Detail
      Where Payh_Id =Paysd_Payh_id 
           and PayH_Comp_Code = :Global.Company
           And PayH_Supp_Code = :Load_Supp_Code
           And PayH_Process_Dt = :PayH_Process_Dt
           And Payh_Divn_Code =:Payh_Divn_Code
      Order By Paysd_Id;   



  Cursor Cur_SuppUnres
  Is Select Payu_Id, Payu_Payh_Id, Payu_Txn_Type, 
       Payu_Doc_Dt, Payu_Doc_No, Payu_Ref, 
       Payu_Amt, Payu_Remarks, Payu_Cr_User, 
       Payu_Cr_Dt, Payu_Edt_User, Payu_Edt_Dt From Wt_Pay_Head,Wt_Pay_Undesignated
         Where Payh_Id =PayU_Payh_id 
           and PayH_Comp_Code = :Global.Company
           And PayH_Supp_Code = :Load_Supp_Code
           And Payh_Divn_Code =:Payh_Divn_Code
           And PayH_Process_Dt = :PayH_Process_Dt
      Order By PayU_Id;   





   V_Curr_Block    Varchar2 (30);
   V_Confirm_Del   Char (1)      := 'N';
   V_Skip          Char (1)      := 'N';
   V_Alert         Number;
   V_Bal           Number;
   V_Transit       Number;
   V_Tot_Pay       Number        := 0;
   V_Ctr           Number        := 0;
   V_Cnt           Number        := 0;
   v_lcnt          Number         :=0;
   v_Count         Number;
Begin
  
  :Frm_En_Early_Pay :=Fn_Get_Supp_Param(:PayH_Supp_Code,'SUPP_EN_EARLY_PAY');
  :Frm_Early_Pay_Disc :=Fn_Get_Supp_Param(:PayH_Supp_Code,'SUPP_EARLY_PAY_DISC');

  
  Select Count(*) into v_Count from wt_Pay_Head
  Where PayH_Comp_Code =:Global.Company
  And Payh_Divn_Code =:Payh_Divn_Code
  And PayH_Supp_Code = :Load_Supp_Code
  And PayH_Process_Dt = :PayH_Process_Dt
  And Nvl(PayH_Load_Flag,'N') ='N';
  If Nvl(v_Count,0) > 0 Then
    Select Payh_Supp_Stmt_Amt into :Payh_Supp_Stmt_Amt
    From wt_Pay_Head
    Where PayH_Comp_Code =:Global.Company
    And Payh_Divn_Code =:Payh_Divn_Code
    And PayH_Supp_Code = :Load_Supp_Code
    And PayH_Process_Dt = :PayH_Process_Dt
    And Nvl(PayH_Load_Flag,'N') ='N';
  
    If :Parameter.Supp_Active Is Not Null Then
      If :Load_Supp_Code<>:Parameter.Supp_Active Then
        :Parameter.Supp_Active:=:Load_Supp_Code;
      End If;
    Else
      :Parameter.Supp_Active:=:Load_Supp_Code;
    End If;
    --  :Load_Supp_Bank_Code Is Null =>  (:PayH_Pay_Mode = 'B' and :Load_Supp_Bank_Code Is Null) Srisankar for cheque processing
    If  :Load_Supp_Code Is Null Or (:PayH_Pay_Mode in('B') and :Load_Supp_Bank_Code Is Null) Then 
      Show_Message ('Msg_Alert', 'Supplier Or Bank Cannot Be Null');
      Raise Form_Trigger_Failure;
    End If;
    --Clear Old Records Of The Supplier
    --Check If The Supplier Already Loaded Before
    V_Curr_Block := :System.Current_Block;
    Set_Block_Property ('T_Pay_Detail', Insert_Allowed, Property_True);
    Set_Block_Property ('T_Pay_Detail', Delete_Allowed, Property_True);
    Go_Block ('T_Pay_Detail');
    First_Record;
  
    Last_Record;
    V_Cnt := :System.Trigger_Record;
    First_Record;
    V_Confirm_Del := 'N';
    For I In 1 .. V_Cnt Loop
      If :System.Last_Record = 'True' Then
         Exit;
      End If;
  
      If (:T_Pay_Detail.Payd_Supp_Code = :Load_Supp_Code) 
        And (:T_Pay_Detail.Payd_Flag Not In ('M', 'R')) Then
        If Nvl (V_Confirm_Del, 'N') = 'N' Then
           V_Alert := Show_Alert ('Confirm_Supp_Load_Again');
           If V_Alert = Alert_Button2 Then
              V_Skip := 'Y';
              Exit;
           End If;
  
           V_Confirm_Del := 'Y';
        End If;
        Delete_Record;
    
      Else
        Next_Record;
      End If;
    End Loop;
   
    If (:T_Pay_Detail.Payd_Supp_Code = :Load_Supp_Code) And :T_Pay_Detail.Payd_Flag Not In ('M', 'R') Then
       Delete_Record;
    End If;
   
    If :T_Pay_Detail.Payd_Supp_Code Is Not Null Then
      Next_Record;
    End If;
     
    :System.Message_Level := '10';
    If Nvl (V_Skip, 'N') = 'N' Then
    
     For C In Cur_Supp Loop
       If Cur_Supp%Notfound then
           Exit;
       End If;
       
       V_Bal := C.Payd_Bal;
  
       Select Sum (Payd_Lc_Amt) Into V_Transit
       From T_Pay_Head, T_Pay_Detail
       Where Payh_Id = Payd_Payh_Id
       And Payd_Os_Id = C.Payd_Os_Id
       And (Payh_Approval_Status IN ('P','V') --Include the documents in review status also 
       And Payh_Valid_Till >= To_Date (Sysdate, 'DD-Mon-YY')
       Or     (    Payh_Approval_Status In ('F', 'N')
       And Nvl (Payh_Process_Status, 'N') = 'N'
       )
       And Payh_Valid_Till >= To_Date (Sysdate, 'DD-Mon-YY')
       );
  
       V_Bal := V_Bal - Nvl (V_Transit, 0);
       If V_Bal > 0 Then
         If Nvl (:Load_Curr_Code, :Global.Basecurrency) =:Global.Basecurrency Then
            :T_Pay_Detail.Payd_Curr_Code := :Global.Basecurrency;
            :T_Pay_Detail.Payd_Curr_Rate := 1;
         Else
            :T_Pay_Detail.Payd_Curr_Code := :Load_Curr_Code;
            :T_Pay_Detail.Payd_Curr_Rate := :Load_Curr_Rate;
         End If;
  
         :T_Pay_Detail.Payd_Supp_Code := C.Payd_Supp_Code;
         :T_Pay_Detail.Payd_Supp_Bank_Code := C.Payd_Supp_Bank_Code;
         :T_Pay_Detail.Supp_Name  := C.Supp_Name;
         :T_Pay_Detail.Payd_Os_Id := C.Payd_Os_Id;
         :T_Pay_Detail.Os_Txn_Code := C.Doc_Txn_Code;
         :T_Pay_Detail.Os_Doc_Dt := C.Doc_Dt;
           If (C.Doc_Dt + (:Supp_Cr_Days - Nvl(:Adj_Days,0))) > :PayH_Process_Dt Then
              If Nvl(:Frm_En_Early_Pay,'N') ='Y' and C.Drcr_Flag ='C' Then
                 :T_Pay_Detail.Payd_Early_Pay_Disc_Perc :=:Frm_Early_Pay_Disc; 
              End If;
           End If;

         :T_Pay_Detail.Os_Invoice_No := C.Invoice_No;
         :T_Pay_Detail.Os_Due_Dt := C.Due_Dt;
         :T_Pay_Detail.Payd_Orig_Lc_Amt := C.Payd_Orig_Lc_Amt;
         If  v_Bal <=C.Payd_Lc_Amt Then
           :T_Pay_Detail.Payd_Bal := v_Bal;
           :T_Pay_Detail.Payd_Lc_Amt := V_Bal;
           :T_Pay_Detail.Payd_Fc_Amt := V_Bal / Nvl (:T_Pay_Detail.Payd_Curr_Rate, 1);
         Else  
            :T_Pay_Detail.Payd_Bal := C.Payd_Bal;
           :T_Pay_Detail.Payd_Fc_Amt := C.Payd_Fc_Amt;
           :T_Pay_Detail.Payd_Lc_Amt := C.Payd_Lc_Amt;
         End If; 
           :T_Pay_Detail.Payd_Pay_Type := C.Payd_Pay_Type;
           :T_Pay_Detail.Payd_Drcr_Flag := C.Drcr_Flag;
           v_lcnt   :=v_lcnt+1;
         If Nvl (C.Doc_Hold, 'N') = 'Y' Then
           :T_Pay_Detail.Payd_Fc_Amt := 0;
           :T_Pay_Detail.Payd_Lc_Amt := 0;
           :T_Pay_Detail.Payd_Pay_Type := 'H';
         End If;
  
              :T_Pay_Detail.Payd_Flag := C.Payd_Flag;
              :T_Pay_Detail.Payd_Cr_User := :Global.User;
              :T_Pay_Detail.Payd_Cr_Dt := Sysdate;
              Next_Record;
           End If;
        End Loop;
        End If;
        First_Record;
        Go_Block('T_Pay_SuppStmt_Detail');
        First_Record;
        For Cur in Cur_Suppstmt Loop
          If Cur_Suppstmt%Notfound Then
            Exit;
          End If;
  
            :Paysd_Txn_Type := Cur.Paysd_Txn_Type;
            :Paysd_Doc_Dt := Cur.Paysd_Doc_Dt;
            :Paysd_Doc_No := Cur.Paysd_Doc_No;
            :Paysd_Ref := Cur.Paysd_Ref;
            :Paysd_Drcr_Flag:=Cur.Paysd_Drcr_Flag;
            :Paysd_Actual_Amt := Cur.Paysd_Actual_Amt;
            :Paysd_Req_Amt := Cur.Paysd_Req_Amt; 
             :Paysd_Adj_Amt := Cur.Paysd_Adj_Amt;
             :Paysd_Remarks := Cur.Paysd_Remarks;
            :Paysd_Os_Id   := Cur.Paysd_Os_Id; 
            Next_Record;
        End Loop; 
        Go_Block('T_Pay_Undesignated');
        First_Record;
        
        For Cur1 in Cur_SuppUnres Loop
          If Cur_SuppUnres%Notfound Then
            Exit;
          End If;
          :Payu_Txn_Type := Cur1.Payu_Txn_Type; 
            :Payu_Doc_Dt := Cur1.Payu_Doc_Dt;
            :Payu_Doc_No := Cur1.Payu_Doc_No;
            :Payu_Ref := Cur1.Payu_Ref; 
           :Payu_Amt := Cur1.Payu_Amt;
           :Payu_Remarks:= Cur1.Payu_Remarks;
           Next_Record;
        End Loop;
     Go_Block('T_Pay_Detail');       
        
        
      ---Added on 19-05-2013--------------  
     If v_lcnt>0 Then
      Proc_Insert_Update_Setting;
      :Parameter.Oth :='N';
      Set_Item_Property('PB_Oth', Enabled, Property_False);
      
     End If;
     ----------------
     Set_Item_Property('Load_Supp_Code', Enabled, Property_False);
     Set_Block_Property ('T_Pay_Detail', Insert_Allowed, Property_True);
     Set_Block_Property ('T_Pay_Detail', Delete_Allowed, Property_False);
     Set_Block_Property ('T_Pay_Detail', Update_Allowed, Property_True);
      Set_Item_Property('Load_Draft_Btn', Enabled, Property_False);
     Go_Block (V_Curr_Block);
  Else
     Show_Message ('Msg_Alert', 'No data to load');    
  End If;
     
End;
What you getClause Rule Language
on press of LOAD_DRAFT_BTN:    from WT_PAY_HEAD_COUNT(LOAD_SUPP_CODE, PAYH_DIVN_CODE, PAYH_PROCESS_DT)
        # load-fmb-pay-supp-t-pay-head-load-draft-btn-press-0    from WT_PAY_HEAD(LOAD_SUPP_CODE, PAYH_DIVN_CODE, PAYH_PROCESS_DT) when nvl(WT_PAY_HEAD_COUNT.COUNT, 0) > 0
        # load-fmb-pay-supp-t-pay-head-load-draft-btn-press-1    set FRM_EN_EARLY_PAY to FN_GET_SUPP_PARAM(PAYH_SUPP_CODE, 'SUPP_EN_EARLY_PAY')    set FRM_EARLY_PAY_DISC to FN_GET_SUPP_PARAM(PAYH_SUPP_CODE, 'SUPP_EARLY_PAY_DISC')    set PAYH_SUPP_STMT_AMT to WT_PAY_HEAD.PAYH_SUPP_STMT_AMT when nvl(WT_PAY_HEAD_COUNT.COUNT, 0) > 0    deny when (nvl(WT_PAY_HEAD_COUNT.COUNT, 0) > 0) and (is_blank(LOAD_SUPP_CODE) or ((PAYH_PAY_MODE = 'B') and is_blank(LOAD_SUPP_BANK_CODE))) else "Supplier Or Bank Cannot Be Null"    state unlock T_PAY_DETAIL on insert, delete when nvl(WT_PAY_HEAD_COUNT.COUNT, 0) > 0    go to T_PAY_DETAIL when nvl(WT_PAY_HEAD_COUNT.COUNT, 0) > 0    last record of T_PAY_HEAD when nvl(WT_PAY_HEAD_COUNT.COUNT, 0) > 0    first record of T_PAY_HEAD when nvl(WT_PAY_HEAD_COUNT.COUNT, 0) > 0    next record of T_PAY_HEAD when (nvl(WT_PAY_HEAD_COUNT.COUNT, 0) > 0) and is_filled(PAYD_SUPP_CODE)    first record of T_PAY_HEAD when nvl(WT_PAY_HEAD_COUNT.COUNT, 0) > 0    go to T_PAY_SUPPSTMT_DETAIL when nvl(WT_PAY_HEAD_COUNT.COUNT, 0) > 0    append rows to T_PAY_SUPPSTMT_DETAIL in loop-fmb-pay-supp-t-pay-head-load-draft-btn-0 when nvl(WT_PAY_HEAD_COUNT.COUNT, 0) > 0    go to T_PAY_UNDESIGNATED when nvl(WT_PAY_HEAD_COUNT.COUNT, 0) > 0    append rows to T_PAY_UNDESIGNATED in loop-fmb-pay-supp-t-pay-head-load-draft-btn-1 when nvl(WT_PAY_HEAD_COUNT.COUNT, 0) > 0    go to T_PAY_DETAIL when nvl(WT_PAY_HEAD_COUNT.COUNT, 0) > 0    state disable LOAD_SUPP_CODE when nvl(WT_PAY_HEAD_COUNT.COUNT, 0) > 0    state unlock T_PAY_DETAIL on insert when nvl(WT_PAY_HEAD_COUNT.COUNT, 0) > 0    state lock T_PAY_DETAIL on delete when nvl(WT_PAY_HEAD_COUNT.COUNT, 0) > 0    state unlock T_PAY_DETAIL on update when nvl(WT_PAY_HEAD_COUNT.COUNT, 0) > 0    state disable LOAD_DRAFT_BTN when nvl(WT_PAY_HEAD_COUNT.COUNT, 0) > 0    warn "No data to load" when not (nvl(WT_PAY_HEAD_COUNT.COUNT, 0) > 0)
# 7 statements did not convert.#   line 100
#   :Parameter.Supp_Active:=:Load_Supp_Code;
#   reason: set writes a field or a global and there is no third spelling, so a write to a form parameter is refused: item 20 rules a parameter read-only#   line 103
#   :Parameter.Supp_Active:=:Load_Supp_Code;
#   reason: set writes a field or a global and there is no third spelling, so a write to a form parameter is refused: item 20 rules a parameter read-only#   line 122
#   For I In 1 .. V_Cnt Loop
#         If :System.Last_Record = 'True' Then
#            Exit;
#         End If;
#     
#         If (:T_Pay_Detail.Payd_Supp_Code = :Load_Supp_Code) 
#           And (:T_Pay_Detail.Payd_Flag Not In ('M', 'R')) Then
#           If Nvl (V_Confirm_Del, 'N') = 'N' Then
#              V_Alert := Show_Alert ('Confirm_Supp_Load_Again');
#              If V_Alert = Alert_Button2 Then
#                 V_Skip := 'Y';
#                 Exit;
#              End If;
#     
#              V_Confirm_Del := 'Y';
#           End If;
#           Delete_Record;
#       
#         Else
#           Next_Record;
#         End If;
#       End Loop;
#   reason: it walks until a row matches and stops there, and the test it stops on names something CRL has no expression node for, so which row it chose is not stated#   line 146
#   Delete_Record;
#   reason: DELETE_RECORD is a Forms built-in, which no FormConnect document declares because no database holds it, and no program unit of this form declares one either, so there is no body to inline under the caller's point and item and nothing to bridge to#   line 154
#   If Nvl (V_Skip, 'N') = 'N' Then
#     For C In Cur_Supp Loop
#          If Cur_Supp%Notfound then
#              Exit;
#          End If;
#          
#          V_Bal := C.Payd_Bal;
#     
#          Select Sum (Payd_Lc_Amt) Into V_Transit
#          From T_Pay_Head, T_Pay_Detail
#          Where Payh_Id = Payd_Payh_Id
#          And Payd_Os_Id = C.Payd_Os_Id
#          And (Payh_Approval_Status IN ('P','V')  
#          And Payh_Valid_Till >= To_Date (Sysdate, 'DD-Mon-YY')
#          Or     (    Payh_Approval_Status In ('F', 'N')
#          And Nvl (Payh_Process_Status, 'N') = 'N'
#          )
#          And Payh_Valid_Till >= To_Date (Sysdate, 'DD-Mon-YY')
#          );
#     
#          V_Bal := V_Bal - Nvl (V_Transit, 0);
#          If V_Bal > 0 Then
#            If Nvl (:Load_Curr_Code, :Global.Basecurrency) =:Global.Basecurrency Then
#               :T_Pay_Detail.Payd_Curr_Code := :Global.Basecurrency;
#               :T_Pay_Detail.Payd_Curr_Rate := 1;
#            Else
#               :T_Pay_Detail.Payd_Curr_Code := :Load_Curr_Code;
#               :T_Pay_Detail.Payd_Curr_Rate := :Load_Curr_Rate;
#            End If;
#     
#            :T_Pay_Detail.Payd_Supp_Code := C.Payd_Supp_Code;
#            :T_Pay_Detail.Payd_Supp_Bank_Code := C.Payd_Supp_Bank_Code;
#            :T_Pay_Detail.Supp_Name  := C.Supp_Name;
#            :T_Pay_Detail.Payd_Os_Id := C.Payd_Os_Id;
#            :T_Pay_Detail.Os_Txn_Code := C.Doc_Txn_Code;
#            :T_Pay_Detail.Os_Doc_Dt := C.Doc_Dt;
#              If (C.Doc_Dt + (:Supp_Cr_Days - Nvl(:Adj_Days,0))) > :PayH_Process_Dt Then
#                 If Nvl(:Frm_En_Early_Pay,'N') ='Y' and C.Drcr_Flag ='C' Then
#                    :T_Pay_Detail.Payd_Early_Pay_Disc_Perc :=:Frm_Early_Pay_Disc; 
#                 End If;
#              End If;
#   
#            :T_Pay_Detail.Os_Invoice_No := C.Invoice_No;
#            :T_Pay_Detail.Os_Due_Dt := C.Due_Dt;
#            :T_Pay_Detail.Payd_Orig_Lc_Amt := C.Payd_Orig_Lc_Amt;
#            If  v_Bal <=C.Payd_Lc_Amt Then
#              :T_Pay_Detail.Payd_Bal := v_Bal;
#              :T_Pay_Detail.Payd_Lc_Amt := V_Bal;
#              :T_Pay_Detail.Payd_Fc_Amt := V_Bal / Nvl (:T_Pay_Detail.Payd_Curr_Rate, 1);
#            Else  
#               :T_Pay_Detail.Payd_Bal := C.Payd_Bal;
#              :T_Pay_Detail.Payd_Fc_Amt := C.Payd_Fc_Amt;
#              :T_Pay_Detail.Payd_Lc_Amt := C.Payd_Lc_Amt;
#            End If; 
#              :T_Pay_Detail.Payd_Pay_Type := C.Payd_Pay_Type;
#              :T_Pay_Detail.Payd_Drcr_Flag := C.Drcr_Flag;
#              v_lcnt   :=v_lcnt+1;
#            If Nvl (C.Doc_Hold, 'N') = 'Y' Then
#              :T_Pay_Detail.Payd_Fc_Amt := 0;
#              :T_Pay_Detail.Payd_Lc_Amt := 0;
#              :T_Pay_Detail.Payd_Pay_Type := 'H';
#            End If;
#     
#                 :T_Pay_Detail.Payd_Flag := C.Payd_Flag;
#                 :T_Pay_Detail.Payd_Cr_User := :Global.User;
#                 :T_Pay_Detail.Payd_Cr_Dt := Sysdate;
#                 Next_Record;
#              End If;
#           End Loop;
#   End If;
#   reason: the guard reads the local V_SKIP, which a loop body above it writes, so what it holds here depends on which iteration ran last#   line 264
#   If v_lcnt>0 Then
#     Proc_Insert_Update_Setting;
#     :Parameter.Oth :='N';
#     Set_Item_Property('PB_Oth', Enabled, Property_False);
#   End If;
#   reason: the guard reads the local V_LCNT, which a branch above it writes on one path only, so what it holds here depends on which path ran#   line 276
#   Go_Block (V_Curr_Block);
#   reason: Go_Block names no block this form declares, so the clause would move the screen to somewhere that is not there

21 clauses converted, 7 statements refused