details: https://code.openbravo.com/erp/stable/2.50/rev/032a689b7aa2 changeset: 9878:032a689b7aa2 user: Víctor Martínez Romanos <victor.martinez <at> openbravo.com> date: Mon Aug 06 14:38:55 2012 +0200 summary: Fixed bug 21294, Fixed bug 21316: Enterprise Module Management
+ Client/Org modules are now properly displayed + An already applied dataset is not shown anymore for ancestor/child orgs + Checksum is now taken into account in case of updates. We also use the versions for those scenarios where the dataset has been created without checksum (old 2.50 modules) + ISACTIVE column is taken into account + The LEFT JOIN is now filtering by the selected organization. The client is also included into the join clause to avoid swapping the client and org parameters into the generated sqlc method. details: https://code.openbravo.com/erp/stable/2.50/rev/48b25af4e8b3 changeset: 9879:48b25af4e8b3 user: RM packaging bot <staff.rm <at> openbravo.com> date: Wed Aug 08 08:57:47 2012 +0000 summary: Update AD_MODULE version to 2.50MP43.1 details: https://code.openbravo.com/erp/stable/2.50/rev/6cf28c19c472 changeset: 9880:6cf28c19c472 user: RM packaging bot <staff.rm <at> openbravo.com> date: Wed Aug 08 08:57:48 2012 +0000 summary: Added tag 2.50MP43.1 for changeset 48b25af4e8b3 details: https://code.openbravo.com/erp/stable/2.50/rev/2ec58dc88331 changeset: 9881:2ec58dc88331 user: RM packaging bot <staff.rm <at> openbravo.com> date: Wed Aug 08 08:57:48 2012 +0000 summary: Added signature for changeset 6cf28c19c472 details: https://code.openbravo.com/erp/stable/2.50/rev/c4c23b88c091 changeset: 9882:c4c23b88c091 user: RM packaging bot <staff.rm <at> openbravo.com> date: Wed Aug 08 19:44:01 2012 +0000 summary: Merge temporary head for 2.50MP43.1 diffstat: .hgsigs | 3 + .hgtags | 3 + src-db/database/model/triggers/C_PROJECTPHASE_TRG.xml | 12 ++- src-db/database/model/triggers/C_PROJECT_TRG.xml | 18 +++-- src-db/database/sourcedata/AD_MODULE.xml | 4 +- src/org/openbravo/erpCommon/ad_reports/ReportBankJR.jrxml | 3 +- src/org/openbravo/erpCommon/ad_reports/ReportInvoiceCustomerDimensionalAnalysesJR.java | 2 +- src/org/openbravo/erpCommon/ad_reports/ReportInvoiceVendorDimensionalAnalysesJR.java | 2 +- src/org/openbravo/erpCommon/ad_reports/ReportMaterialDimensionalAnalysesJR.java | 2 +- src/org/openbravo/erpCommon/ad_reports/ReportPurchaseDimensionalAnalysesJR.java | 2 +- src/org/openbravo/erpCommon/ad_reports/ReportRefundSalesDimensionalAnalyses.java | 2 +- src/org/openbravo/erpCommon/ad_reports/ReportSalesDimensionalAnalyzeJR.java | 2 +- src/org/openbravo/erpCommon/ad_reports/ReportShipmentDimensionalAnalyzeJR.java | 2 +- src/org/openbravo/erpCommon/modules/ModuleReferenceDataOrgTree_data.xsql | 29 +++++++-- 14 files changed, 57 insertions(+), 29 deletions(-) diffs (267 lines): diff -r e98b36a3ad92 -r c4c23b88c091 .hgsigs --- a/.hgsigs Tue Jun 26 13:29:02 2012 +0000 +++ b/.hgsigs Wed Aug 08 19:44:01 2012 +0000 @@ -49,3 +49,6 @@ 9b335eae0071491c5d8437320fccabe7603534c8 0 iEYEABECAAYFAk9LR/MACgkQCX/oGf+2qkM8eACgl7DM2XSyJGADTPWaCbrpNLdvKy8An0JU044vIFKjAPQLwu4mXl4txC4x 2c848102025d9073ebee66a2ed3547282fa65b6d 0 iEYEABECAAYFAk9jf/MACgkQCX/oGf+2qkM7EQCgoSgZdKK8XyuLuYuY28wnyrn0E2MAoJyxuApTzIzLV6AfR8pMa5ImnDxW 862d0f5550813b0088a1618861534ed7ae958229 0 iEYEABECAAYFAk+MRt8ACgkQCX/oGf+2qkOIawCbBjOYJQITpaJjroLxH03QiTZxXSwAoM0RcGpvtVITTcCu79hoTnuy0Mp4 +ee13d3872de31beba028d398cd082c61968f6b98 0 iEYEABECAAYFAk/puR8ACgkQCX/oGf+2qkMZjwCeI27XIqbGIvea2zAt6wad/pjl6fMAoOfj2U+5ilvZxt0QVMn/Hvlk/OQK +6cf28c19c472e1ef059be192a47c014694c5635b 0 iEYEABECAAYFAlAiKgwACgkQCX/oGf+2qkNYTACg0gmPpWzgsl94j+atJK/JS9I/Hv4AoKXuTijxeeYU9YDX2zF8qa6V9DuY +bdfc34dda2725d0f526d8151ab2099248f114630 0 iEYEABECAAYFAlAFAAgACgkQCX/oGf+2qkNymwCgkg77E54Pe5C6UNh3emHXzxPrjvgAnRm2fpq+YoWVnTp5GMR2okMdmgkT diff -r e98b36a3ad92 -r c4c23b88c091 .hgtags --- a/.hgtags Tue Jun 26 13:29:02 2012 +0000 +++ b/.hgtags Wed Aug 08 19:44:01 2012 +0000 @@ -60,3 +60,6 @@ 5b3127e1a04ab7c3f42c3d583003f5e7187132af 2.50MP39 d26b6290e0ab88bcf6eb76440ede69b43f9704d7 2.50MP40 a687de381f06486696f8149d70000104caeb4a60 2.50MP41 +e98b36a3ad92b427bac6233d289a77d5974ad500 2.50MP43 +48b25af4e8b319b0698e7dbd83ae18a6268fa92b 2.50MP43.1 +ae4783f13a713e4bca56fe224525241f3858622d 2.50MP44 diff -r e98b36a3ad92 -r c4c23b88c091 src-db/database/model/triggers/C_PROJECTPHASE_TRG.xml --- a/src-db/database/model/triggers/C_PROJECTPHASE_TRG.xml Tue Jun 26 13:29:02 2012 +0000 +++ b/src-db/database/model/triggers/C_PROJECTPHASE_TRG.xml Wed Aug 08 19:44:01 2012 +0000 @@ -44,11 +44,13 @@ END IF; IF UPDATING THEN - SELECT COUNT(*) INTO v_Count FROM C_PROJECTTASK WHERE C_PROJECTPHASE_ID = :NEW.C_PROJECTPHASE_ID; - IF(v_Count > 0) THEN - UPDATE C_PROJECTTASK - SET AD_ORG_ID = :NEW.AD_ORG_ID - WHERE C_PROJECTPHASE_ID = :NEW.C_PROJECTPHASE_ID; + IF (:new.AD_ORG_ID <> :old.AD_ORG_ID) THEN + SELECT COUNT(*) INTO v_Count FROM C_PROJECTTASK WHERE C_PROJECTPHASE_ID = :NEW.C_PROJECTPHASE_ID; + IF(v_Count > 0) THEN + UPDATE C_PROJECTTASK + SET AD_ORG_ID = :NEW.AD_ORG_ID + WHERE C_PROJECTPHASE_ID = :NEW.C_PROJECTPHASE_ID; + END IF; END IF; END IF; diff -r e98b36a3ad92 -r c4c23b88c091 src-db/database/model/triggers/C_PROJECT_TRG.xml --- a/src-db/database/model/triggers/C_PROJECT_TRG.xml Tue Jun 26 13:29:02 2012 +0000 +++ b/src-db/database/model/triggers/C_PROJECT_TRG.xml Wed Aug 08 19:44:01 2012 +0000 @@ -111,15 +111,17 @@ ) ; ELSIF (UPDATING) THEN - SELECT COUNT(*) INTO v_Count FROM C_PROJECTPHASE WHERE C_PROJECT_ID = :new.C_PROJECT_ID; - IF(v_Count > 0) THEN - UPDATE C_PROJECTPHASE - SET AD_ORG_ID = :new.AD_ORG_ID - WHERE C_PROJECT_ID = :new.C_PROJECT_ID; - END IF; + IF (:new.AD_ORG_ID <> :old.AD_ORG_ID) THEN + SELECT COUNT(*) INTO v_Count FROM C_PROJECTPHASE WHERE C_PROJECT_ID = :new.C_PROJECT_ID; + IF(v_Count > 0) THEN + UPDATE C_PROJECTPHASE + SET AD_ORG_ID = :new.AD_ORG_ID + WHERE C_PROJECT_ID = :new.C_PROJECT_ID; + END IF; - UPDATE C_PROJECT_ACCT SET AD_ORG_ID = :new.AD_ORG_ID - WHERE C_PROJECT_ID = :new.C_PROJECT_ID; + UPDATE C_PROJECT_ACCT SET AD_ORG_ID = :new.AD_ORG_ID + WHERE C_PROJECT_ID = :new.C_PROJECT_ID; + END IF; END IF; -- Summary Nodes first EXCEPTION diff -r e98b36a3ad92 -r c4c23b88c091 src-db/database/sourcedata/AD_MODULE.xml --- a/src-db/database/sourcedata/AD_MODULE.xml Tue Jun 26 13:29:02 2012 +0000 +++ b/src-db/database/sourcedata/AD_MODULE.xml Wed Aug 08 19:44:01 2012 +0000 @@ -6,7 +6,7 @@ <!--0--> <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID> <!--0--> <ISACTIVE><![CDATA[Y]]></ISACTIVE> <!--0--> <NAME><![CDATA[Core]]></NAME> -<!--0--> <VERSION><![CDATA[2.50.19867]]></VERSION> +<!--0--> <VERSION><![CDATA[2.50.19873]]></VERSION> <!--0--> <DESCRIPTION><![CDATA[Core module is the base one]]></DESCRIPTION> <!--0--> <HELP><![CDATA[Core module is the base one, all developments in core are included as part of the standard Openbravo ERP.]]></HELP> <!--0--> <URL><![CDATA[www.openbravo.com]]></URL> @@ -22,7 +22,7 @@ <!--0--> <ISTRANSLATIONMODULE><![CDATA[N]]></ISTRANSLATIONMODULE> <!--0--> <HASREFERENCEDATA><![CDATA[Y]]></HASREFERENCEDATA> <!--0--> <REFERENCEDATAINFO><![CDATA[Standard document types for orders, invoices, etc. and settings]]></REFERENCEDATAINFO> -<!--0--> <VERSION_LABEL><![CDATA[MP43]]></VERSION_LABEL> +<!--0--> <VERSION_LABEL><![CDATA[MP44]]></VERSION_LABEL> <!--0--> <ISCOMMERCIAL><![CDATA[N]]></ISCOMMERCIAL> <!--0--> <ISCONFIGSCRIPTAPPLIED><![CDATA[Y]]></ISCONFIGSCRIPTAPPLIED> <!--0--></AD_MODULE> diff -r e98b36a3ad92 -r c4c23b88c091 src/org/openbravo/erpCommon/ad_reports/ReportBankJR.jrxml --- a/src/org/openbravo/erpCommon/ad_reports/ReportBankJR.jrxml Tue Jun 26 13:29:02 2012 +0000 +++ b/src/org/openbravo/erpCommon/ad_reports/ReportBankJR.jrxml Wed Aug 08 19:44:01 2012 +0000 @@ -675,7 +675,8 @@ y="0" width="99" height="16" - key="textField-1"/> + key="textField-1" + stretchType="RelativeToBandHeight"/> <box topBorder="None" topBorderColor="#000000" leftBorder="None" leftBorderColor="#000000" leftPadding="2" rightBorder="None" rightBorderColor="#000000" rightPadding="2" bottomBorder="None" bottomBorderColor="#000000"/> <textElement textAlignment="Right" verticalAlignment="Middle"> <font fontName="Bitstream Vera Sans" /> diff -r e98b36a3ad92 -r c4c23b88c091 src/org/openbravo/erpCommon/ad_reports/ReportInvoiceCustomerDimensionalAnalysesJR.java --- a/src/org/openbravo/erpCommon/ad_reports/ReportInvoiceCustomerDimensionalAnalysesJR.java Tue Jun 26 13:29:02 2012 +0000 +++ b/src/org/openbravo/erpCommon/ad_reports/ReportInvoiceCustomerDimensionalAnalysesJR.java Wed Aug 08 19:44:01 2012 +0000 @@ -522,7 +522,7 @@ levelsconcat.append("M_PRODUCT_CATEGORY.M_PRODUCT_CATEGORY_ID"); } else if (strShownArray[i].equals("4")) { strTextShow[i] = "AD_COLUMN_IDENTIFIER(to_char('M_Product'), to_char( M_PRODUCT.M_PRODUCT_ID), to_char( '" - + vars.getLanguage() + "'))||' ('||UOMSYMBOL||')'"; + + vars.getLanguage() + "'))|| CASE WHEN uomsymbol IS NULL THEN '' ELSE to_char(' ('||uomsymbol||')') END"; intAuxDiscard = i; intOrder++; intProductLevel = i + 1; diff -r e98b36a3ad92 -r c4c23b88c091 src/org/openbravo/erpCommon/ad_reports/ReportInvoiceVendorDimensionalAnalysesJR.java --- a/src/org/openbravo/erpCommon/ad_reports/ReportInvoiceVendorDimensionalAnalysesJR.java Tue Jun 26 13:29:02 2012 +0000 +++ b/src/org/openbravo/erpCommon/ad_reports/ReportInvoiceVendorDimensionalAnalysesJR.java Wed Aug 08 19:44:01 2012 +0000 @@ -412,7 +412,7 @@ strLevelLabel[i] = dimensionLabel[2].name; } else if (strShownArray[i].equals("4")) { strTextShow[i] = "AD_COLUMN_IDENTIFIER(to_char('M_Product'), to_char( M_PRODUCT.M_PRODUCT_ID), to_char('" - + vars.getLanguage() + "'))||' ('||UOMSYMBOL||')'"; + + vars.getLanguage() + "'))|| CASE WHEN uomsymbol IS NULL THEN '' ELSE to_char(' ('||uomsymbol||')') END"; intAuxDiscard = i; intDiscard++; intProductLevel = i + 1; diff -r e98b36a3ad92 -r c4c23b88c091 src/org/openbravo/erpCommon/ad_reports/ReportMaterialDimensionalAnalysesJR.java --- a/src/org/openbravo/erpCommon/ad_reports/ReportMaterialDimensionalAnalysesJR.java Tue Jun 26 13:29:02 2012 +0000 +++ b/src/org/openbravo/erpCommon/ad_reports/ReportMaterialDimensionalAnalysesJR.java Wed Aug 08 19:44:01 2012 +0000 @@ -394,7 +394,7 @@ strLevelLabel[i] = dimensionLabel[2].name; } else if (strShownArray[i].equals("4")) { strTextShow[i] = "AD_COLUMN_IDENTIFIER(to_char('M_Product'), to_char( M_PRODUCT.M_PRODUCT_ID), to_char('" - + vars.getLanguage() + "'))||' ('||UOMSYMBOL||')'"; + + vars.getLanguage() + "'))|| CASE WHEN uomsymbol IS NULL THEN '' ELSE to_char(' ('||uomsymbol||')') END"; intAuxDiscard = i; intDiscard++; intProductLevel = i + 1; diff -r e98b36a3ad92 -r c4c23b88c091 src/org/openbravo/erpCommon/ad_reports/ReportPurchaseDimensionalAnalysesJR.java --- a/src/org/openbravo/erpCommon/ad_reports/ReportPurchaseDimensionalAnalysesJR.java Tue Jun 26 13:29:02 2012 +0000 +++ b/src/org/openbravo/erpCommon/ad_reports/ReportPurchaseDimensionalAnalysesJR.java Wed Aug 08 19:44:01 2012 +0000 @@ -398,7 +398,7 @@ strLevelLabel[i] = dimensionLabel[2].name; } else if (strShownArray[i].equals("4")) { strTextShow[i] = "AD_COLUMN_IDENTIFIER(to_char('M_Product'), to_char( M_PRODUCT.M_PRODUCT_ID), to_char('" - + vars.getLanguage() + "'))||' ('||UOMSYMBOL||')'"; + + vars.getLanguage() + "'))|| CASE WHEN uomsymbol IS NULL THEN '' ELSE to_char(' ('||uomsymbol||')') END"; intProductLevel = i + 1; intDiscard++; intAuxDiscard = i; diff -r e98b36a3ad92 -r c4c23b88c091 src/org/openbravo/erpCommon/ad_reports/ReportRefundSalesDimensionalAnalyses.java --- a/src/org/openbravo/erpCommon/ad_reports/ReportRefundSalesDimensionalAnalyses.java Tue Jun 26 13:29:02 2012 +0000 +++ b/src/org/openbravo/erpCommon/ad_reports/ReportRefundSalesDimensionalAnalyses.java Wed Aug 08 19:44:01 2012 +0000 @@ -415,7 +415,7 @@ intDiscard++; } else if (strShownArray[i].equals("4")) { strTextShow[i] = "AD_COLUMN_IDENTIFIER(to_char('M_Product'), to_char( M_PRODUCT.M_PRODUCT_ID), to_char('" - + vars.getLanguage() + "'))||' ('||UOMSYMBOL||')'"; + + vars.getLanguage() + "'))|| CASE WHEN uomsymbol IS NULL THEN '' ELSE to_char(' ('||uomsymbol||')') END"; intAuxDiscard = i; intDiscard++; } else if (strShownArray[i].equals("5")) { diff -r e98b36a3ad92 -r c4c23b88c091 src/org/openbravo/erpCommon/ad_reports/ReportSalesDimensionalAnalyzeJR.java --- a/src/org/openbravo/erpCommon/ad_reports/ReportSalesDimensionalAnalyzeJR.java Tue Jun 26 13:29:02 2012 +0000 +++ b/src/org/openbravo/erpCommon/ad_reports/ReportSalesDimensionalAnalyzeJR.java Wed Aug 08 19:44:01 2012 +0000 @@ -480,7 +480,7 @@ levelsconcat.append("M_PRODUCT_CATEGORY.M_PRODUCT_CATEGORY_ID"); } else if (strShownArray[i].equals("4")) { strTextShow[i] = "AD_COLUMN_IDENTIFIER(to_char('M_Product'), to_char( M_PRODUCT.M_PRODUCT_ID), to_char('" - + vars.getLanguage() + "'))||' ('||UOMSYMBOL||')'"; + + vars.getLanguage() + "'))|| CASE WHEN uomsymbol IS NULL THEN '' ELSE to_char(' ('||uomsymbol||')') END"; intAuxDiscard = i; intDiscard++; intProductLevel = i + 1; diff -r e98b36a3ad92 -r c4c23b88c091 src/org/openbravo/erpCommon/ad_reports/ReportShipmentDimensionalAnalyzeJR.java --- a/src/org/openbravo/erpCommon/ad_reports/ReportShipmentDimensionalAnalyzeJR.java Tue Jun 26 13:29:02 2012 +0000 +++ b/src/org/openbravo/erpCommon/ad_reports/ReportShipmentDimensionalAnalyzeJR.java Wed Aug 08 19:44:01 2012 +0000 @@ -490,7 +490,7 @@ levelsconcat.append("M_PRODUCT_CATEGORY.M_PRODUCT_CATEGORY_ID"); } else if (strShownArray[i].equals("4")) { strTextShow[i] = "AD_COLUMN_IDENTIFIER(to_char('M_Product'), to_char( M_PRODUCT.M_PRODUCT_ID), to_char('" - + vars.getLanguage() + "'))||' ('||UOMSYMBOL||')'"; + + vars.getLanguage() + "'))|| CASE WHEN uomsymbol IS NULL THEN '' ELSE to_char(' ('||uomsymbol||')') END"; intAuxDiscard = i; intDiscard++; intProductLevel = i + 1; diff -r e98b36a3ad92 -r c4c23b88c091 src/org/openbravo/erpCommon/modules/ModuleReferenceDataOrgTree_data.xsql --- a/src/org/openbravo/erpCommon/modules/ModuleReferenceDataOrgTree_data.xsql Tue Jun 26 13:29:02 2012 +0000 +++ b/src/org/openbravo/erpCommon/modules/ModuleReferenceDataOrgTree_data.xsql Wed Aug 08 19:44:01 2012 +0000 @@ -12,7 +12,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) 2008-2009 Openbravo SLU + * All portions are Copyright (C) 2008-2012 Openbravo SLU * All Rights Reserved. * Contributor(s): ______________________________________. ************************************************************************ @@ -56,7 +56,8 @@ AND ((EXISTS (SELECT 1 FROM ad_dataset WHERE M.ad_module_id = AD_DATASET.ad_module_id AND AD_DATASET.ACCESSLEVEL IN ('3','1') - AND AD_DATASET.EXPORTALLOWED = 'Y') + AND AD_DATASET.EXPORTALLOWED = 'Y' + AND ISACTIVE = 'Y') AND M.HASREFERENCEDATA = 'Y') OR M.haschartofaccounts = 'Y') AND NOT EXISTS (SELECT 1 FROM AD_CLIENTMODULE CM @@ -81,9 +82,10 @@ CASE WHEN COALESCE(AD_ORGMODULE.VERSION,M.VERSION) <> M.VERSION THEN 'Y' ELSE '' END AS Update_Available, m.seqno FROM AD_Module M left join AD_DATASET on M.ad_module_id = AD_DATASET.ad_module_id - LEFT JOIN AD_ORGMODULE ON M.AD_MODULE_ID = AD_ORGMODULE.AD_MODULE_ID + LEFT JOIN AD_ORGMODULE ON (M.AD_MODULE_ID = AD_ORGMODULE.AD_MODULE_ID AND AD_ORGMODULE.AD_Client_ID = ? AND AD_ORGMODULE.AD_ORG_ID = ? ) WHERE M.TYPE = 'M' AND M.ISACTIVE = 'Y' + AND AD_DATASET.ISACTIVE = 'Y' AND 1=1 AND M.HASREFERENCEDATA = 'Y' AND EXPORTALLOWED = 'Y' @@ -97,17 +99,31 @@ AND OM.AD_CLIENT_ID = ? AND (AD_IsOrgIncluded(?, OM.AD_Org_ID, OM.AD_Client_ID)<>-1 OR AD_IsOrgIncluded(OM.AD_Org_ID, ?, OM.AD_Client_ID)<>-1) - AND OM.VERSION = M.VERSION) - AND (((? <> '0') AND AD_DATASET.ACCESSLEVEL IN ('1')) + AND (OM.CHECKSUM LIKE '%'|| AD_DATASET.CHECKSUM ||'%' + /* it hides the dataset in case both checksum are null (it may happen in datasets created without checksum column) */ + OR COALESCE(OM.VERSION,M.VERSION) = M.VERSION)) + AND NOT EXISTS (SELECT 1 FROM AD_ORGMODULE OM + WHERE OM.ad_module_id = M.ad_module_id + AND OM.AD_CLIENT_ID = ? + AND (AD_IsOrgIncluded(OM.AD_Org_ID, ?, OM.AD_Client_ID)<>-1 + OR AD_IsOrgIncluded(?, OM.AD_Org_ID, OM.AD_Client_ID)<>-1) + AND OM.ad_org_id <> ?) + AND (((? <> '0') AND AD_DATASET.ACCESSLEVEL IN ('1', '3')) OR ((? = '0') AND AD_DATASET.ACCESSLEVEL IN ('3', '6')))) A ORDER BY A.SeqNo ]]> </Sql> <Parameter name="lang"/> <Parameter name="client"/> + <Parameter name="org"/> + <Parameter name="client"/> <Parameter name="client"/> <Parameter name="org"/> <Parameter name="org"/> + <Parameter name="client"/> + <Parameter name="org"/> + <Parameter name="org"/> + <Parameter name="org"/> <Parameter name="org"/> <Parameter name="org"/> </SqlMethod> @@ -130,7 +146,8 @@ AND IsIncluded = 'Y') AND EXISTS (SELECT 1 FROM AD_DATASET WHERE AD_DATASET.AD_MODULE_ID = M.AD_MODULE_ID - AND EXPORTALLOWED = 'Y') + AND EXPORTALLOWED = 'Y' + AND ISACTIVE = 'Y') AND ISACTIVE = 'Y' </Sql> <Parameter name="lang"/> ------------------------------------------------------------------------------ Live Security Virtual Conference Exclusive live event will cover all the ways today's security and threat landscape has changed and how IT managers can respond. Discussions will include endpoint security, mobile security and the latest in malware threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ _______________________________________________ Openbravo-commits mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/openbravo-commits
