details: https://code.openbravo.com/erp/devel/pi/rev/3398cf233133
changeset: 32681:3398cf233133
user: Alvaro Ferraz <alvaro.ferraz <at> openbravo.com>
date: Wed Sep 06 13:23:35 2017 +0200
summary: Related to issue 36789: Code review improvements
Initialize variables with null instead of an empty string and then check if
variable is not null.
Thus, we avoid problems in Oracle if we check if length('') = 0.
See: https://issues.openbravo.com/view.php?id=36789#c98858
diffstat:
src-db/database/model/functions/MA_STANDARD_COST.xml | 2 +-
src-db/database/model/functions/MA_WORKEFFORT_VALIDATE.xml | 16 +++---
src-db/database/model/functions/M_GET_OFFERS_NAME.xml | 8 +-
src-db/database/model/functions/M_INOUT_POST.xml | 31 ++++++-------
src-db/database/model/functions/M_PRODUCTION_RUN.xml | 14 +++---
src-db/database/sourcedata/AD_AUXILIARINPUT.xml | 4 +-
src-db/database/sourcedata/AD_COLUMN.xml | 2 +-
7 files changed, 38 insertions(+), 39 deletions(-)
diffs (259 lines):
diff -r 9ba0cfebdf14 -r 3398cf233133
src-db/database/model/functions/MA_STANDARD_COST.xml
--- a/src-db/database/model/functions/MA_STANDARD_COST.xml Thu Sep 07
15:23:54 2017 -0400
+++ b/src-db/database/model/functions/MA_STANDARD_COST.xml Wed Sep 06
13:23:35 2017 +0200
@@ -127,7 +127,7 @@
END LOOP;
-- Update AD_PInstance
- IF (v_Message IS NOT NULL AND v_Message <> '') THEN
+ IF (v_Message IS NOT NULL) THEN
v_Message := '@Success@<br>' || v_Message;
v_Result := 2;
END IF;
diff -r 9ba0cfebdf14 -r 3398cf233133
src-db/database/model/functions/MA_WORKEFFORT_VALIDATE.xml
--- a/src-db/database/model/functions/MA_WORKEFFORT_VALIDATE.xml Thu Sep
07 15:23:54 2017 -0400
+++ b/src-db/database/model/functions/MA_WORKEFFORT_VALIDATE.xml Wed Sep
06 13:23:35 2017 +0200
@@ -16,7 +16,7 @@
* under the License.
* The Original Code is Openbravo ERP.
* The Initial Developer of the Original Code is Openbravo SLU
-* All portions are Copyright (C) 2001-2015 Openbravo SLU
+* All portions are Copyright (C) 2001-2017 Openbravo SLU
* All Rights Reserved.
* Contributor(s): ______________________________________.
************************************************************************/
@@ -310,8 +310,8 @@
END IF;
IF(NOT FINISH_PROCESS) THEN
DECLARE
- v_Message_ProductionRun VARCHAR(2000) :='';
- v_Message_ProductLine VARCHAR(2000) :='';
+ v_Message_ProductionRun VARCHAR(2000);
+ v_Message_ProductLine VARCHAR(2000);
BEGIN
FOR CUR_ProductionPlan IN
(SELECT pp.Line, pp.M_PRODUCTIONPLAN_ID
@@ -328,14 +328,14 @@
AND pr.ISACTIVE='N'
ORDER BY pl.Line)
LOOP
-
v_Message_ProductLine:=v_Message_ProductLine||CUR_PL_Post.line||', ';
+ v_Message_ProductLine := COALESCE(v_Message_ProductLine, '') ||
CUR_PL_Post.line || ', ';
END LOOP;
- IF(length(v_Message_ProductLine) > 0) THEN
-
v_Message_ProductionRun:=v_Message_ProductionRun||'@ProductionRunLine@'||Cur_ProductionPlan.line||'
@ProductLine@'||v_Message_ProductLine;
- v_Message_ProductLine:='';
+ IF (v_Message_ProductLine IS NOT NULL) THEN
+ v_Message_ProductionRun := COALESCE(v_Message_ProductionRun, '')
|| '@ProductionRunLine@' || Cur_ProductionPlan.line || ' @ProductLine@' ||
v_Message_ProductLine;
+ v_Message_ProductLine := NULL;
END IF;
END LOOP;
- IF length(v_Message_ProductionRun) > 0 THEN
+ IF (v_Message_ProductionRun IS NOT NULL) THEN
RAISE_APPLICATION_ERROR(-20000,
v_Message_ProductionRun||'@InActiveProducts@');
END IF;
END;
diff -r 9ba0cfebdf14 -r 3398cf233133
src-db/database/model/functions/M_GET_OFFERS_NAME.xml
--- a/src-db/database/model/functions/M_GET_OFFERS_NAME.xml Thu Sep 07
15:23:54 2017 -0400
+++ b/src-db/database/model/functions/M_GET_OFFERS_NAME.xml Wed Sep 06
13:23:35 2017 +0200
@@ -22,13 +22,13 @@
* under the License.
* The Original Code is Openbravo ERP.
* The Initial Developer of the Original Code is Openbravo SLU
-* All portions are Copyright (C) 2001-2016 Openbravo SLU
+* All portions are Copyright (C) 2001-2017 Openbravo SLU
* All Rights Reserved.
* Contributor(s): ______________________________________.
************************************************************************/
TYPE RECORD IS REF CURSOR;
Cur_Offer RECORD;
- v_Names varchar2(10000) := '';
+ v_Names varchar2(10000);
BEGIN
FOR Cur_Offer IN
(SELECT NAME
@@ -103,10 +103,10 @@
M_OFFER_ID DESC
)
LOOP
- IF v_Names <> '' THEN
+ IF (v_Names IS NOT NULL) THEN
v_Names := v_Names||'<br/> ';
END IF;
- v_Names := v_Names||Cur_Offer.name;
+ v_Names := COALESCE(v_Names, '') || Cur_Offer.name;
END LOOP;
RETURN v_Names;
EXCEPTION
diff -r 9ba0cfebdf14 -r 3398cf233133
src-db/database/model/functions/M_INOUT_POST.xml
--- a/src-db/database/model/functions/M_INOUT_POST.xml Thu Sep 07 15:23:54
2017 -0400
+++ b/src-db/database/model/functions/M_INOUT_POST.xml Wed Sep 06 13:23:35
2017 +0200
@@ -45,7 +45,7 @@
-- Logistice
v_ResultStr VARCHAR2(2000):='';
v_Message VARCHAR2(2000):='';
- v_Message_aux VARCHAR2(2000):='';
+ v_Message_aux VARCHAR2(2000);
v_Record_ID VARCHAR2(32);
v_User VARCHAR2(32);
v_PUser VARCHAR2(32);
@@ -193,7 +193,7 @@
END IF;
END IF;
Declare
- v_Message_product VARCHAR(2000) :='';
+ v_Message_product VARCHAR(2000);
Begin
FOR Cur_Lines IN (
SELECT M.line
@@ -204,14 +204,14 @@
AND (M.M_PRODUCT_ID IS NULL AND M.MOVEMENTQTY
<> 0)
ORDER BY M.line
) LOOP
- v_Message_product:=v_Message_product||Cur_Lines.line||', ';
+ v_Message_product := COALESCE(v_Message_product, '') ||
Cur_Lines.line || ', ';
END LOOP;
- if length(v_Message_product) > 0 then
+ IF (v_Message_product IS NOT NULL) THEN
RAISE_APPLICATION_ERROR(-20000, '@Inline@ '||v_Message_product||'
'||'@ProductNullAndMovementQtyGreaterZero@') ;
- end if ;
+ END IF;
End ;
Declare
- v_Message_Qty VARCHAR(2000) :='';
+ v_Message_Qty VARCHAR(2000);
BEGIN
FOR Cur_Lines IN (
SELECT M.line
@@ -222,14 +222,14 @@
AND (M.M_PRODUCT_ID IS NOT NULL AND
M.MOVEMENTQTY = 0)
ORDER BY M.line
) LOOP
- v_Message_Qty:=v_Message_Qty||Cur_Lines.line||', ';
+ v_Message_Qty := COALESCE(v_Message_Qty, '') || Cur_Lines.line || ',
';
END LOOP;
- IF length(v_Message_Qty) > 0 THEN
+ IF (v_Message_Qty IS NOT NULL) THEN
RAISE_APPLICATION_ERROR(-20000, '@Inline@ '||v_Message_Qty||'
'||'@ProductNotNullAndMovementQtyZero@') ;
END IF;
End ;
Declare
- v_Message_NotAvail VARCHAR(2000) :='';
+ v_Message_NotAvail VARCHAR(2000);
BEGIN
FOR Cur_Lines IN (
SELECT M.line
@@ -245,14 +245,14 @@
(I.issotrx = 'N' AND v_isreturndoctype =
'Y'))
ORDER BY M.line
) LOOP
- v_Message_NotAvail:=v_Message_NotAvail||Cur_Lines.line||', ';
+ v_Message_NotAvail := COALESCE(v_Message_NotAvail, '') ||
Cur_Lines.line || ', ';
END LOOP;
- IF length(v_Message_NotAvail) > 0 THEN
+ IF (v_Message_NotAvail IS NOT NULL) THEN
RAISE_APPLICATION_ERROR(-20000, '@Inline@
'||v_Message_NotAvail||' '||'@LocatorWithNotAvailableStatus@') ;
END IF;
End ;
DECLARE
- v_Message_Inactive_Products VARCHAR(2000) :='';
+ v_Message_Inactive_Products VARCHAR(2000);
BEGIN
FOR Cur_Lines IN (
SELECT IOL.line
@@ -263,9 +263,9 @@
ORDER BY IOL.line
)
LOOP
-
v_Message_Inactive_Products:=v_Message_Inactive_Products||Cur_Lines.line||', ';
+ v_Message_Inactive_Products := COALESCE(v_Message_Inactive_Products,
'') || Cur_Lines.line || ', ';
END LOOP;
- IF length(v_Message_Inactive_Products) > 0 THEN
+ IF (v_Message_Inactive_Products IS NOT NULL) THEN
RAISE_APPLICATION_ERROR(-20000, '@Inline@
'||v_Message_Inactive_Products||' '||'@InActiveProducts@') ;
END IF;
END;
@@ -994,7 +994,6 @@
where M_INOUT.M_INOUT_id =v_Record_ID;
if v_voiddoccount = 0 then
v_ResultStr:='Check delivery rule for sales orders';
- v_Message_aux:='';
v_orderid_old:='0';
FOR Cur_Order IN
(SELECT c_order.deliveryrule, m_inoutline.line,
c_order.c_order_id,
@@ -1024,7 +1023,7 @@
END IF;
v_orderid_old := cur_order.c_order_id;
END LOOP;
- IF (v_Message_aux IS NOT NULL AND v_Message_aux <> '') THEN
+ IF (v_Message_aux IS NOT NULL) THEN
RAISE_APPLICATION_ERROR(-20000, v_Message_aux);
END IF;
END IF;
diff -r 9ba0cfebdf14 -r 3398cf233133
src-db/database/model/functions/M_PRODUCTION_RUN.xml
--- a/src-db/database/model/functions/M_PRODUCTION_RUN.xml Thu Sep 07
15:23:54 2017 -0400
+++ b/src-db/database/model/functions/M_PRODUCTION_RUN.xml Wed Sep 06
13:23:35 2017 +0200
@@ -570,8 +570,8 @@
END IF;
DECLARE
- v_Message_ProductionRun VARCHAR(2000) :='';
- v_Message_ProductLine VARCHAR(2000) :='';
+ v_Message_ProductionRun VARCHAR(2000);
+ v_Message_ProductLine VARCHAR(2000);
BEGIN
FOR CUR_ProductionPlan IN
(SELECT pp.Line, pp.M_PRODUCTIONPLAN_ID
@@ -588,14 +588,14 @@
AND pr.ISACTIVE='N'
ORDER BY pl.Line)
LOOP
-
v_Message_ProductLine:=v_Message_ProductLine||CUR_PL_Post.line||', ';
+ v_Message_ProductLine := COALESCE(v_Message_ProductLine, '') ||
CUR_PL_Post.line || ', ';
END LOOP;
- IF(length(v_Message_ProductLine) > 0) THEN
-
v_Message_ProductionRun:=v_Message_ProductionRun||'@ProductionRunLine@'||Cur_ProductionPlan.line||'
@ProductLine@'||v_Message_ProductLine;
- v_Message_ProductLine:='';
+ IF (v_Message_ProductLine IS NOT NULL) THEN
+ v_Message_ProductionRun := COALESCE(v_Message_ProductionRun, '')
|| '@ProductionRunLine@' || Cur_ProductionPlan.line || ' @ProductLine@' ||
v_Message_ProductLine;
+ v_Message_ProductLine := NULL;
END IF;
END LOOP;
- IF length(v_Message_ProductionRun) > 0 THEN
+ IF (v_Message_ProductionRun IS NOT NULL) THEN
RAISE_APPLICATION_ERROR(-20000,
v_Message_ProductionRun||'@InActiveProducts@');
END IF;
END;
diff -r 9ba0cfebdf14 -r 3398cf233133
src-db/database/sourcedata/AD_AUXILIARINPUT.xml
--- a/src-db/database/sourcedata/AD_AUXILIARINPUT.xml Thu Sep 07 15:23:54
2017 -0400
+++ b/src-db/database/sourcedata/AD_AUXILIARINPUT.xml Wed Sep 06 13:23:35
2017 +0200
@@ -1186,7 +1186,7 @@
<!--2252C06D4EA7419FA38E7B5565EF411C--> <ISACTIVE><![CDATA[Y]]></ISACTIVE>
<!--2252C06D4EA7419FA38E7B5565EF411C-->
<AD_TAB_ID><![CDATA[1004400002]]></AD_TAB_ID>
<!--2252C06D4EA7419FA38E7B5565EF411C--> <NAME><![CDATA[GROSSPRICE]]></NAME>
-<!--2252C06D4EA7419FA38E7B5565EF411C--> <CODE><![CDATA[@SQL=SELECT
istaxincluded from m_pricelist where m_pricelist_id = CASE WHEN
COALESCE(@M_PRICELIST_ID@,'') <> '' THEN @M_PRICELIST_ID@ ELSE (SELECT
m_pricelist_id from m_requisition where m_requisition_id = @M_Requisition_ID@)
END]]></CODE>
+<!--2252C06D4EA7419FA38E7B5565EF411C--> <CODE><![CDATA[@SQL=SELECT
istaxincluded from m_pricelist where m_pricelist_id = CASE WHEN @M_PRICELIST_ID
IS NOT NULL THEN @M_PRICELIST_ID@ ELSE (SELECT m_pricelist_id from
m_requisition where m_requisition_id = @M_Requisition_ID@) END]]></CODE>
<!--2252C06D4EA7419FA38E7B5565EF411C-->
<AD_MODULE_ID><![CDATA[0]]></AD_MODULE_ID>
<!--2252C06D4EA7419FA38E7B5565EF411C--></AD_AUXILIARINPUT>
@@ -1697,7 +1697,7 @@
<!--3C6B0BCF770446E1BE14CFEE4E6ABC23--> <ISACTIVE><![CDATA[Y]]></ISACTIVE>
<!--3C6B0BCF770446E1BE14CFEE4E6ABC23-->
<AD_TAB_ID><![CDATA[800251]]></AD_TAB_ID>
<!--3C6B0BCF770446E1BE14CFEE4E6ABC23--> <NAME><![CDATA[GROSSPRICE]]></NAME>
-<!--3C6B0BCF770446E1BE14CFEE4E6ABC23--> <CODE><![CDATA[@SQL=SELECT
istaxincluded from m_pricelist where m_pricelist_id = CASE WHEN
COALESCE(@M_PRICELIST_ID@,'') <> '' THEN @M_PRICELIST_ID@ ELSE (SELECT
m_pricelist_id from m_requisition where m_requisition_id = @M_Requisition_ID@)
END]]></CODE>
+<!--3C6B0BCF770446E1BE14CFEE4E6ABC23--> <CODE><![CDATA[@SQL=SELECT
istaxincluded from m_pricelist where m_pricelist_id = CASE WHEN
@M_PRICELIST_ID@ IS NOT NULL THEN @M_PRICELIST_ID@ ELSE (SELECT m_pricelist_id
from m_requisition where m_requisition_id = @M_Requisition_ID@) END]]></CODE>
<!--3C6B0BCF770446E1BE14CFEE4E6ABC23-->
<AD_MODULE_ID><![CDATA[0]]></AD_MODULE_ID>
<!--3C6B0BCF770446E1BE14CFEE4E6ABC23--></AD_AUXILIARINPUT>
diff -r 9ba0cfebdf14 -r 3398cf233133 src-db/database/sourcedata/AD_COLUMN.xml
--- a/src-db/database/sourcedata/AD_COLUMN.xml Thu Sep 07 15:23:54 2017 -0400
+++ b/src-db/database/sourcedata/AD_COLUMN.xml Wed Sep 06 13:23:35 2017 +0200
@@ -24717,7 +24717,7 @@
<!--1636--> <AD_REFERENCE_ID><![CDATA[18]]></AD_REFERENCE_ID>
<!--1636--> <AD_REFERENCE_VALUE_ID><![CDATA[233]]></AD_REFERENCE_VALUE_ID>
<!--1636--> <FIELDLENGTH><![CDATA[22]]></FIELDLENGTH>
-<!--1636--> <DEFAULTVALUE><![CDATA[@SQL= SELECT CASE WHEN (@C_Period_ID@ <>
'' AND @C_Period_ID@ IS NOT NULL) THEN @C_Period_ID@ ELSE C_Period_ID END FROM
C_Period WHERE C_Year_ID IN (SELECT C_Year_ID FROM C_Year WHERE C_Calendar_ID
=(SELECT C_Calendar_ID FROM AD_ORG WHERE AD_Client_ID= @AD_Client_ID@ AND
AD_ORG_ID=(SELECT AD_ORG_GETCALENDAROWNER( @AD_Org_ID@ ) from dual))) AND
to_date( COALESCE(@DateAcct@,@#Date@) ) BETWEEN StartDate AND EndDate AND
PeriodType='S' AND exists (select 1 from c_periodcontrol where
c_periodcontrol.c_period_id = c_period.c_period_id AND periodstatus =
'O')]]></DEFAULTVALUE>
+<!--1636--> <DEFAULTVALUE><![CDATA[@SQL= SELECT CASE WHEN @C_Period_ID@ IS
NOT NULL THEN @C_Period_ID@ ELSE C_Period_ID END FROM C_Period WHERE C_Year_ID
IN (SELECT C_Year_ID FROM C_Year WHERE C_Calendar_ID =(SELECT C_Calendar_ID
FROM AD_ORG WHERE AD_Client_ID= @AD_Client_ID@ AND AD_ORG_ID=(SELECT
AD_ORG_GETCALENDAROWNER( @AD_Org_ID@ ) from dual))) AND to_date(
COALESCE(@DateAcct@,@#Date@) ) BETWEEN StartDate AND EndDate AND PeriodType='S'
AND exists (select 1 from c_periodcontrol where c_periodcontrol.c_period_id =
c_period.c_period_id AND periodstatus = 'O')]]></DEFAULTVALUE>
<!--1636--> <ISKEY><![CDATA[N]]></ISKEY>
<!--1636--> <ISPARENT><![CDATA[N]]></ISPARENT>
<!--1636--> <ISMANDATORY><![CDATA[Y]]></ISMANDATORY>
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Openbravo-commits mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/openbravo-commits