# HG changeset patch
# User Javier Armendáriz <javier.armendariz@openbravo.com>
# Date 1545654993 -3600
#      Mon Dec 24 13:36:33 2018 +0100
# Node ID 2730a1285660035e5115b25f10c0dfdb0e4f34da
# Parent  596e7671b561eb1d16189c9089cb4691a7f37ccd
Created process in product to be able to reproduce issue 39218

diff --git a/src-db/database/model/tables/M_PRODUCT.xml b/src-db/database/model/tables/M_PRODUCT.xml
--- a/src-db/database/model/tables/M_PRODUCT.xml
+++ b/src-db/database/model/tables/M_PRODUCT.xml
@@ -409,6 +409,10 @@
         <default/>
         <onCreateDefault/>
       </column>
+      <column name="SET_ATTRINSTANCE" primaryKey="false" required="false" type="CHAR" size="1" autoIncrement="false">
+        <default/>
+        <onCreateDefault/>
+      </column>
       <foreign-key foreignTable="AD_ORG" name="AD_ORG_MPRODUCT">
         <reference local="AD_ORG_ID" foreign="AD_ORG_ID"/>
       </foreign-key>
diff --git a/src-db/database/sourcedata/AD_COLUMN.xml b/src-db/database/sourcedata/AD_COLUMN.xml
--- a/src-db/database/sourcedata/AD_COLUMN.xml
+++ b/src-db/database/sourcedata/AD_COLUMN.xml
@@ -264940,7 +264940,7 @@
 <!--45D07D1724D0421EA67E8B2EE6D45DE8-->  <ISDESENCRYPTABLE><![CDATA[N]]></ISDESENCRYPTABLE>
 <!--45D07D1724D0421EA67E8B2EE6D45DE8-->  <DEVELOPMENTSTATUS><![CDATA[RE]]></DEVELOPMENTSTATUS>
 <!--45D07D1724D0421EA67E8B2EE6D45DE8-->  <AD_MODULE_ID><![CDATA[0]]></AD_MODULE_ID>
-<!--45D07D1724D0421EA67E8B2EE6D45DE8-->  <POSITION><![CDATA[112]]></POSITION>
+<!--45D07D1724D0421EA67E8B2EE6D45DE8-->  <POSITION><![CDATA[102]]></POSITION>
 <!--45D07D1724D0421EA67E8B2EE6D45DE8-->  <ISTRANSIENT><![CDATA[N]]></ISTRANSIENT>
 <!--45D07D1724D0421EA67E8B2EE6D45DE8-->  <ISAUTOSAVE><![CDATA[Y]]></ISAUTOSAVE>
 <!--45D07D1724D0421EA67E8B2EE6D45DE8-->  <VALIDATEONNEW><![CDATA[Y]]></VALIDATEONNEW>
@@ -291626,6 +291626,42 @@
 <!--671F517F12A84CE48A22AC64B7DF502E-->  <ALLOWED_CROSS_ORG_LINK><![CDATA[N]]></ALLOWED_CROSS_ORG_LINK>
 <!--671F517F12A84CE48A22AC64B7DF502E--></AD_COLUMN>
 
+<!--672A8D6EE5434997A5741583DC9D0657--><AD_COLUMN>
+<!--672A8D6EE5434997A5741583DC9D0657-->  <AD_COLUMN_ID><![CDATA[672A8D6EE5434997A5741583DC9D0657]]></AD_COLUMN_ID>
+<!--672A8D6EE5434997A5741583DC9D0657-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--672A8D6EE5434997A5741583DC9D0657-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--672A8D6EE5434997A5741583DC9D0657-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--672A8D6EE5434997A5741583DC9D0657-->  <NAME><![CDATA[Set_AttrInstance]]></NAME>
+<!--672A8D6EE5434997A5741583DC9D0657-->  <COLUMNNAME><![CDATA[set_attrinstance]]></COLUMNNAME>
+<!--672A8D6EE5434997A5741583DC9D0657-->  <AD_TABLE_ID><![CDATA[208]]></AD_TABLE_ID>
+<!--672A8D6EE5434997A5741583DC9D0657-->  <AD_REFERENCE_ID><![CDATA[28]]></AD_REFERENCE_ID>
+<!--672A8D6EE5434997A5741583DC9D0657-->  <FIELDLENGTH><![CDATA[1]]></FIELDLENGTH>
+<!--672A8D6EE5434997A5741583DC9D0657-->  <ISKEY><![CDATA[N]]></ISKEY>
+<!--672A8D6EE5434997A5741583DC9D0657-->  <ISPARENT><![CDATA[N]]></ISPARENT>
+<!--672A8D6EE5434997A5741583DC9D0657-->  <ISMANDATORY><![CDATA[N]]></ISMANDATORY>
+<!--672A8D6EE5434997A5741583DC9D0657-->  <ISUPDATEABLE><![CDATA[Y]]></ISUPDATEABLE>
+<!--672A8D6EE5434997A5741583DC9D0657-->  <ISIDENTIFIER><![CDATA[N]]></ISIDENTIFIER>
+<!--672A8D6EE5434997A5741583DC9D0657-->  <SEQNO><![CDATA[860]]></SEQNO>
+<!--672A8D6EE5434997A5741583DC9D0657-->  <ISTRANSLATED><![CDATA[N]]></ISTRANSLATED>
+<!--672A8D6EE5434997A5741583DC9D0657-->  <ISENCRYPTED><![CDATA[N]]></ISENCRYPTED>
+<!--672A8D6EE5434997A5741583DC9D0657-->  <ISSELECTIONCOLUMN><![CDATA[N]]></ISSELECTIONCOLUMN>
+<!--672A8D6EE5434997A5741583DC9D0657-->  <ISSESSIONATTR><![CDATA[N]]></ISSESSIONATTR>
+<!--672A8D6EE5434997A5741583DC9D0657-->  <ISSECONDARYKEY><![CDATA[N]]></ISSECONDARYKEY>
+<!--672A8D6EE5434997A5741583DC9D0657-->  <ISDESENCRYPTABLE><![CDATA[N]]></ISDESENCRYPTABLE>
+<!--672A8D6EE5434997A5741583DC9D0657-->  <DEVELOPMENTSTATUS><![CDATA[RE]]></DEVELOPMENTSTATUS>
+<!--672A8D6EE5434997A5741583DC9D0657-->  <AD_MODULE_ID><![CDATA[0]]></AD_MODULE_ID>
+<!--672A8D6EE5434997A5741583DC9D0657-->  <POSITION><![CDATA[103]]></POSITION>
+<!--672A8D6EE5434997A5741583DC9D0657-->  <ISTRANSIENT><![CDATA[N]]></ISTRANSIENT>
+<!--672A8D6EE5434997A5741583DC9D0657-->  <ISAUTOSAVE><![CDATA[Y]]></ISAUTOSAVE>
+<!--672A8D6EE5434997A5741583DC9D0657-->  <VALIDATEONNEW><![CDATA[Y]]></VALIDATEONNEW>
+<!--672A8D6EE5434997A5741583DC9D0657-->  <IMAGESIZEVALUESACTION><![CDATA[N]]></IMAGESIZEVALUESACTION>
+<!--672A8D6EE5434997A5741583DC9D0657-->  <ISUSEDSEQUENCE><![CDATA[N]]></ISUSEDSEQUENCE>
+<!--672A8D6EE5434997A5741583DC9D0657-->  <ALLOWSORTING><![CDATA[Y]]></ALLOWSORTING>
+<!--672A8D6EE5434997A5741583DC9D0657-->  <ALLOWFILTERING><![CDATA[Y]]></ALLOWFILTERING>
+<!--672A8D6EE5434997A5741583DC9D0657-->  <ALLOWED_CROSS_ORG_LINK><![CDATA[N]]></ALLOWED_CROSS_ORG_LINK>
+<!--672A8D6EE5434997A5741583DC9D0657-->  <EM_OBUIAPP_PROCESS_ID><![CDATA[29CC552B8C9C449BB22725E93B506953]]></EM_OBUIAPP_PROCESS_ID>
+<!--672A8D6EE5434997A5741583DC9D0657--></AD_COLUMN>
+
 <!--672E47F6A43B4AD1B7AC8EE923F9318B--><AD_COLUMN>
 <!--672E47F6A43B4AD1B7AC8EE923F9318B-->  <AD_COLUMN_ID><![CDATA[672E47F6A43B4AD1B7AC8EE923F9318B]]></AD_COLUMN_ID>
 <!--672E47F6A43B4AD1B7AC8EE923F9318B-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
diff --git a/src-db/database/sourcedata/AD_FIELD.xml b/src-db/database/sourcedata/AD_FIELD.xml
--- a/src-db/database/sourcedata/AD_FIELD.xml
+++ b/src-db/database/sourcedata/AD_FIELD.xml
@@ -289657,6 +289657,33 @@
 <!--C1DE57A2C139C846E040007F01000CC6-->  <EM_OBUIAPP_SHOWSUMMARY><![CDATA[N]]></EM_OBUIAPP_SHOWSUMMARY>
 <!--C1DE57A2C139C846E040007F01000CC6--></AD_FIELD>
 
+<!--C1E0BFDD89914E4A9F9B90B2566B812F--><AD_FIELD>
+<!--C1E0BFDD89914E4A9F9B90B2566B812F-->  <AD_FIELD_ID><![CDATA[C1E0BFDD89914E4A9F9B90B2566B812F]]></AD_FIELD_ID>
+<!--C1E0BFDD89914E4A9F9B90B2566B812F-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--C1E0BFDD89914E4A9F9B90B2566B812F-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--C1E0BFDD89914E4A9F9B90B2566B812F-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--C1E0BFDD89914E4A9F9B90B2566B812F-->  <NAME><![CDATA[Set Attribute Set Instance]]></NAME>
+<!--C1E0BFDD89914E4A9F9B90B2566B812F-->  <ISCENTRALLYMAINTAINED><![CDATA[Y]]></ISCENTRALLYMAINTAINED>
+<!--C1E0BFDD89914E4A9F9B90B2566B812F-->  <AD_TAB_ID><![CDATA[180]]></AD_TAB_ID>
+<!--C1E0BFDD89914E4A9F9B90B2566B812F-->  <AD_COLUMN_ID><![CDATA[672A8D6EE5434997A5741583DC9D0657]]></AD_COLUMN_ID>
+<!--C1E0BFDD89914E4A9F9B90B2566B812F-->  <IGNOREINWAD><![CDATA[N]]></IGNOREINWAD>
+<!--C1E0BFDD89914E4A9F9B90B2566B812F-->  <ISDISPLAYED><![CDATA[Y]]></ISDISPLAYED>
+<!--C1E0BFDD89914E4A9F9B90B2566B812F-->  <DISPLAYLOGIC><![CDATA[@M_AttributeSet_ID@]]></DISPLAYLOGIC>
+<!--C1E0BFDD89914E4A9F9B90B2566B812F-->  <DISPLAYLENGTH><![CDATA[1]]></DISPLAYLENGTH>
+<!--C1E0BFDD89914E4A9F9B90B2566B812F-->  <ISREADONLY><![CDATA[N]]></ISREADONLY>
+<!--C1E0BFDD89914E4A9F9B90B2566B812F-->  <SEQNO><![CDATA[1400]]></SEQNO>
+<!--C1E0BFDD89914E4A9F9B90B2566B812F-->  <ISSAMELINE><![CDATA[N]]></ISSAMELINE>
+<!--C1E0BFDD89914E4A9F9B90B2566B812F-->  <ISFIELDONLY><![CDATA[N]]></ISFIELDONLY>
+<!--C1E0BFDD89914E4A9F9B90B2566B812F-->  <ISENCRYPTED><![CDATA[N]]></ISENCRYPTED>
+<!--C1E0BFDD89914E4A9F9B90B2566B812F-->  <SHOWINRELATION><![CDATA[N]]></SHOWINRELATION>
+<!--C1E0BFDD89914E4A9F9B90B2566B812F-->  <ISFIRSTFOCUSEDFIELD><![CDATA[N]]></ISFIRSTFOCUSEDFIELD>
+<!--C1E0BFDD89914E4A9F9B90B2566B812F-->  <AD_MODULE_ID><![CDATA[0]]></AD_MODULE_ID>
+<!--C1E0BFDD89914E4A9F9B90B2566B812F-->  <STARTINODDCOLUMN><![CDATA[N]]></STARTINODDCOLUMN>
+<!--C1E0BFDD89914E4A9F9B90B2566B812F-->  <STARTNEWLINE><![CDATA[N]]></STARTNEWLINE>
+<!--C1E0BFDD89914E4A9F9B90B2566B812F-->  <ISSHOWNINSTATUSBAR><![CDATA[N]]></ISSHOWNINSTATUSBAR>
+<!--C1E0BFDD89914E4A9F9B90B2566B812F-->  <EM_OBUIAPP_SHOWSUMMARY><![CDATA[N]]></EM_OBUIAPP_SHOWSUMMARY>
+<!--C1E0BFDD89914E4A9F9B90B2566B812F--></AD_FIELD>
+
 <!--C1F72D44A6724325AEB35C6A264AF151--><AD_FIELD>
 <!--C1F72D44A6724325AEB35C6A264AF151-->  <AD_FIELD_ID><![CDATA[C1F72D44A6724325AEB35C6A264AF151]]></AD_FIELD_ID>
 <!--C1F72D44A6724325AEB35C6A264AF151-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
diff --git a/src-db/database/sourcedata/OBUIAPP_PROCESS.xml b/src-db/database/sourcedata/OBUIAPP_PROCESS.xml
--- a/src-db/database/sourcedata/OBUIAPP_PROCESS.xml
+++ b/src-db/database/sourcedata/OBUIAPP_PROCESS.xml
@@ -150,6 +150,24 @@
 <!--281FFDFAB31C4394A2EAA73A6F9F3A3F-->  <ISCANADDRECORDSTOSELECTOR><![CDATA[N]]></ISCANADDRECORDSTOSELECTOR>
 <!--281FFDFAB31C4394A2EAA73A6F9F3A3F--></OBUIAPP_PROCESS>
 
+<!--29CC552B8C9C449BB22725E93B506953--><OBUIAPP_PROCESS>
+<!--29CC552B8C9C449BB22725E93B506953-->  <OBUIAPP_PROCESS_ID><![CDATA[29CC552B8C9C449BB22725E93B506953]]></OBUIAPP_PROCESS_ID>
+<!--29CC552B8C9C449BB22725E93B506953-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
+<!--29CC552B8C9C449BB22725E93B506953-->  <AD_ORG_ID><![CDATA[0]]></AD_ORG_ID>
+<!--29CC552B8C9C449BB22725E93B506953-->  <ISACTIVE><![CDATA[Y]]></ISACTIVE>
+<!--29CC552B8C9C449BB22725E93B506953-->  <VALUE><![CDATA[SetAttrSetInstance]]></VALUE>
+<!--29CC552B8C9C449BB22725E93B506953-->  <NAME><![CDATA[Set Attribute Set Instance]]></NAME>
+<!--29CC552B8C9C449BB22725E93B506953-->  <ACCESSLEVEL><![CDATA[3]]></ACCESSLEVEL>
+<!--29CC552B8C9C449BB22725E93B506953-->  <CLASSNAME><![CDATA[org.openbravo.materialmgmt.actionhandler.SetAttrSetInstance]]></CLASSNAME>
+<!--29CC552B8C9C449BB22725E93B506953-->  <ISBACKGROUND><![CDATA[N]]></ISBACKGROUND>
+<!--29CC552B8C9C449BB22725E93B506953-->  <AD_MODULE_ID><![CDATA[0]]></AD_MODULE_ID>
+<!--29CC552B8C9C449BB22725E93B506953-->  <UIPATTERN><![CDATA[OBUIAPP_PickAndExecute]]></UIPATTERN>
+<!--29CC552B8C9C449BB22725E93B506953-->  <ISMULTIRECORD><![CDATA[N]]></ISMULTIRECORD>
+<!--29CC552B8C9C449BB22725E93B506953-->  <IS_EXPLICIT_ACCESS><![CDATA[N]]></IS_EXPLICIT_ACCESS>
+<!--29CC552B8C9C449BB22725E93B506953-->  <ISGRIDLEGACY><![CDATA[N]]></ISGRIDLEGACY>
+<!--29CC552B8C9C449BB22725E93B506953-->  <ISCANADDRECORDSTOSELECTOR><![CDATA[N]]></ISCANADDRECORDSTOSELECTOR>
+<!--29CC552B8C9C449BB22725E93B506953--></OBUIAPP_PROCESS>
+
 <!--3A4E13B0AB764F188CB062DDE2A9B685--><OBUIAPP_PROCESS>
 <!--3A4E13B0AB764F188CB062DDE2A9B685-->  <OBUIAPP_PROCESS_ID><![CDATA[3A4E13B0AB764F188CB062DDE2A9B685]]></OBUIAPP_PROCESS_ID>
 <!--3A4E13B0AB764F188CB062DDE2A9B685-->  <AD_CLIENT_ID><![CDATA[0]]></AD_CLIENT_ID>
diff --git a/src/org/openbravo/materialmgmt/actionhandler/SetAttrSetInstance.java b/src/org/openbravo/materialmgmt/actionhandler/SetAttrSetInstance.java
new file mode 100644
--- /dev/null
+++ b/src/org/openbravo/materialmgmt/actionhandler/SetAttrSetInstance.java
@@ -0,0 +1,73 @@
+/*
+ *************************************************************************
+ * The contents of this file are subject to the Openbravo  Public  License
+ * Version  1.1  (the  "License"),  being   the  Mozilla   Public  License
+ * Version 1.1  with a permitted attribution clause; you may not  use this
+ * file except in compliance with the License. You  may  obtain  a copy of
+ * the License at http://www.openbravo.com/legal/license.html
+ * Software distributed under the License  is  distributed  on  an "AS IS"
+ * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
+ * License for the specific  language  governing  rights  and  limitations
+ * under the License.
+ * The Original Code is Openbravo ERP.
+ * The Initial Developer of the Original Code is Openbravo SLU
+ * All portions are Copyright (C) 2018 Openbravo SLU
+ * All Rights Reserved.
+ * Contributor(s):  ______________________________________.
+ ************************************************************************
+ */
+package org.openbravo.materialmgmt.actionhandler;
+
+import java.util.Map;
+
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+import org.codehaus.jettison.json.JSONObject;
+import org.openbravo.client.application.process.BaseProcessActionHandler;
+import org.openbravo.client.application.process.ResponseActionsBuilder;
+import org.openbravo.dal.core.OBContext;
+import org.openbravo.dal.service.OBDal;
+import org.openbravo.model.common.plm.AttributeSet;
+import org.openbravo.model.common.plm.AttributeSetInstance;
+import org.openbravo.model.common.plm.Product;
+
+public class SetAttrSetInstance extends BaseProcessActionHandler {
+
+  private static final Logger log = LogManager.getLogger();
+
+  @Override
+  protected JSONObject doExecute(Map<String, Object> parameters, String content) {
+    OBContext.setAdminMode(true);
+    try {
+      JSONObject jsonRequest = new JSONObject(content);
+
+      log.info("Parameter inpmAttributesetinstanceId. Value= {}",
+          jsonRequest.getString("inpmAttributesetinstanceId"));
+
+      Product product = OBDal.getInstance().get(Product.class,
+          jsonRequest.getString("M_Product_ID"));
+      // Attribute set: Lot
+      AttributeSet attributeSet = OBDal.getInstance().get(AttributeSet.class,
+          "B676F279C99943818DDE55BFDA9BE379");
+
+      // Instance description: L18/07
+      AttributeSetInstance attributeSetInstance = OBDal.getInstance().get(
+          AttributeSetInstance.class, "0BD1F69F312D4831A5B36EA184B420DF");
+
+      product.setAttributeSet(attributeSet);
+      product.setAttributeSetValue(attributeSetInstance);
+      product.setUseAttributeSetValueAs("D");
+
+      return getResponseBuilder() //
+          .showMsgInProcessView(ResponseActionsBuilder.MessageType.SUCCESS, "Success!") //
+          .build();
+    } catch (Exception e) {
+      log.error(e);
+      return getResponseBuilder() //
+          .showMsgInProcessView(ResponseActionsBuilder.MessageType.ERROR, "Error setting UOM") //
+          .build();
+    } finally {
+      OBContext.restorePreviousMode();
+    }
+  }
+}
