I am setting lot/Serial number of inventory detail...
# general
e
I am setting lot/Serial number of inventory detail on save of client script When I set "receiptinventorynumber" it gives me error "Please configure inventory details" When I set "issueinventorynumber" it gives me error "Please set value for Serial/Lot number". I am getting the value of inventory detail just before saving the record but it errors out when I try to save it!!!! So frustrated, don't know why?!
b
what does the rest of the code look like
what you shared does not actually look like you are using the currentRecord
which is what is normally used in client script
e
I am using this code to configure Inventory details var InvDetailRec =objRecord.getSublistSubrecord({ sublistId: "inventory", fieldId: "inventorydetail", line: i, }); if (InvDetailRec) { try { InvDetailRec.setSublistValue({ sublistId: "inventoryassignment", fieldId: "receiptinventorynumber", line: 0, value:1786, }); } catch (error) { log.debug("error 228 receiptinventorynumber", error); } InvDetailRec.setSublistValue({ sublistId: "inventoryassignment", fieldId: "issueinventorynumber", //"receiptinventorynumber",// line: 0, value: "12345", }); InvDetailRec.setSublistValue({ sublistId: "inventoryassignment", fieldId: "status", line: 0, value:1, }); var binNum = InvDetailRecIR.getSublistValue({ sublistId: "inventoryassignment", fieldId: "binnumber", line: 0, }); log.debug("binNum", binNum); InvDetailRec.setSublistValue({ sublistId: "inventoryassignment", fieldId: "binnumber", line: 0, value: binNum, forceSyncSourcing: true, }); log.debug("adjustQuanty223", adjustQuanty); InvDetailRec.setSublistValue({ sublistId: "inventoryassignment", fieldId: "quantity", line: 0, value: adjustQuanty, }); }
where "InvDetailRec" is the Inventory detail record object
b
thats honestly ever weirder
its extra unusual to use 3 inventory detail related features
but same thing as earlier
this still doesnt look like the currentRecord, and you havent share enough to confirm that
e
I changed my approach from Client script to UE and inside that now I am trying to configure inventory detail record
Copy code
/**
 *@NApiVersion 2.1
 *@NScriptType userEventScript
 */

 define(["N/record","N/url"], function (record,url){
function afterSubmit(context){
    try {
        log.debug("!--- Save Record Start--!");
        var currentRec = context.newRecord;
        var objRecord = record.create({
          type: record.Type.INVENTORY_ADJUSTMENT,
        });
  
        var recordObject = {};
        var client = currentRec.getValue({ fieldId: "entity" });
        if (client) {
          objRecord.setValue({ fieldId: "customer", value: client });
        }
  
        var date = currentRec.getValue({ fieldId: "trandate" });
        if (date) {
          objRecord.setValue({ fieldId: "trandate", value: new Date(date) });
        }
        var memo = currentRec.getValue({ fieldId: "memo" });
        if (memo) {
          objRecord.setValue({ fieldId: "memo", value: memo });
        }
        var department = currentRec.getValue({ fieldId: "department" });
        if (department) {
          objRecord.setValue({ fieldId: "department", value: department });
        }
        var location = currentRec.getValue({ fieldId: "location" });
        if (location) {
          objRecord.setValue({ fieldId: "adjlocation", value: location });
        }
        var adjustAccount = currentRec.getValue({
          fieldId: "custbody_gbs_ir_adjust_acct",
        });
        if (adjustAccount) {
          objRecord.setValue({ fieldId: "account", value: adjustAccount });
        }
        var sublistCount = currentRec.getLineCount({
          sublistId: "item",
        });
        log.debug("sublistCount 111", sublistCount);
      
        for (var i = 0; i < sublistCount; i++) {
          
          var item = currentRec.getSublistValue({
            sublistId: "item",
            fieldId: "item",
            line: i,
          });
          if (item) {
            objRecord.setSublistValue({
              sublistId: "inventory",
              fieldId: "item",
              value: item,
              line: i,
              forceSyncSourcing: true,
            });
            objRecord.setSublistValue({
              sublistId: "inventory",
              fieldId: "location",
              value: location,
              line: i,
              forceSyncSourcing: true,
            });
            objRecord.setSublistValue({
              sublistId: "inventory",
              fieldId: "department",
              value: department,
              line: i,
            });
          }
          var adjustQuanty = currentRec.getSublistValue({
            sublistId: "item",
            fieldId: "quantity",
            line: i,
          });
          log.debug("adjustQuanty 146", adjustQuanty);
          if (adjustQuanty) {
            log.debug("adjustQuanty 147", adjustQuanty);
            objRecord.setSublistValue({
              sublistId: "inventory",
              fieldId: "adjustqtyby",
              value: adjustQuanty,
              line: i,
              forceSyncSourcing: true,
            });
          }
          log.debug("item", item);
  
          var units = currentRec.getSublistValue({
            sublistId: "item",
            fieldId: "units",
            line: i,
          });
          if (units) {
            objRecord.setSublistValue({
              sublistId: "inventory",
              fieldId: "units",
              value: units,
              line: i,
            });
          }
  
          var memo = currentRec.getSublistValue({
            sublistId: "item",
            fieldId: "memo",
            line: i,
          });
          if (memo) {
            objRecord.setSublistValue({
              sublistId: "inventory",
              fieldId: "item",
              value: memo,
              line: i,
            });
          }
          log.debug("memo", memo);
          var hasSublistSubrec = currentRec.hasSublistSubrecord({
            sublistId: "item",
            fieldId: "inventorydetail",
            line: i,
          });
          log.debug("value of i", i);
          log.debug("hasSublistSubrec", hasSublistSubrec);
          if (hasSublistSubrec) {
            log.debug("inside If");
          
            var InvDetailRecIR = currentRec.getSublistSubrecord({
              sublistId: "item",
              fieldId: "inventorydetail",
              line:i
            });
            log.debug("InvDetailRecIR", InvDetailRecIR);
            if (InvDetailRecIR) {
              var InvDetailRec = objRecord.getSublistSubrecord({
                sublistId: "inventory",
                fieldId: "inventorydetail",
                line: i,
              });    
              if (InvDetailRec) { 
                try {
                  InvDetailRec.setSublistValue({
                    sublistId: "inventoryassignment",
                    fieldId: "receiptinventorynumber",
                    line: 0,
                    value:1786,
                  });
                } catch (error) {
                  log.debug("error 228 receiptinventorynumber", error);
                }
  
                InvDetailRec.setSublistValue({
                  sublistId: "inventoryassignment",
                  fieldId: "issueinventorynumber", //"receiptinventorynumber",//
                  line: 0,
                  value: "12345",
                });
             
                InvDetailRec.setSublistValue({
                    sublistId: "inventoryassignment",
                    fieldId: "status", 
                    line: 0,
                    value:1,
                  });
                var binNum = InvDetailRecIR.getSublistValue({
                  sublistId: "inventoryassignment",
                  fieldId: "binnumber",
                  line: 0,
                });
                log.debug("binNum", binNum);
                InvDetailRec.setSublistValue({
                  sublistId: "inventoryassignment",
                  fieldId: "binnumber",
                  line: 0,
                  value: binNum,
                  forceSyncSourcing: true,
                });
               
                log.debug("adjustQuanty223", adjustQuanty);
                InvDetailRec.setSublistValue({
                  sublistId: "inventoryassignment",
                  fieldId: "quantity",
                  line: 0,
                  value: adjustQuanty,
                });
              
              }
            } else {
              log.debug("inside else 259");
              //  continue;
              break;
            }
          } else {
            log.debug("inside else 264");
            // continue;
            break;
          }
        }
  
        var lotSet = InvDetailRec.getSublistValue({
          sublistId: "inventoryassignment",
          fieldId: "issueinventorynumber",
          line: 0,
        });
  
        log.debug("lotSet 275", lotSet);
        // log.debug(
        //   "lotSet 276",
        //   InvDetailRec.getSublistValue({
        //     sublistId: "inventoryassignment",
        //     fieldId: "receiptinventorynumber",
        //     line: 0,
        //   })
        // );
        log.debug("InvDetailRec 243 ",InvDetailRec)
  
        var RecordCreated = objRecord.save();
        log.debug("RecordCreated", RecordCreated);
        if (RecordCreated) {
          var output = url.resolveRecord({
            recordType: "inventoryadjustment",
            recordId: RecordCreated,
          });
          windows.open(output);
        }
        return true;
      } catch (e) {
        log.debug("Error in saveRecord", e);
      }
    }
    return{
        afterSubmit:afterSubmit
    }


 })
This is the whole code i am using now
b
code honestly looks like an attempt at being generic
which is probably an enhancement that you are making too early
make your inventory adjustment with 1 adjustment
dont get any of the values from
currentRec
, just harcode them
e
sure i will try it now by setting each value hardcode
I tried hardcoding but still it shows me same error "
Copy code
type: "error.SuiteScriptError",
   name: "USER_ERROR",
   message: "Items you have requested in the record have been deleted since you retrieved the form",
"
b
what does the code look like now
e
Copy code
/**
 *@NApiVersion 2.1
 *@NScriptType userEventScript
 */

 define(["N/record","N/url"], function (record,url){
function afterSubmit(context){
    try {
        log.debug("!--- Save Record Start--!");
        var currentRec = context.newRecord;
        var objRecord = record.create({
          type: record.Type.INVENTORY_ADJUSTMENT,
        });
  
        var recordObject = {};
        var client = currentRec.getValue({ fieldId: "entity" });
        if (client) {
          objRecord.setValue({ fieldId: "customer", value: client });
        }
  
        var date = currentRec.getValue({ fieldId: "trandate" });
        if (date) {
          objRecord.setValue({ fieldId: "trandate", value: new Date(date) });
        }
        var memo = currentRec.getValue({ fieldId: "memo" });
        if (memo) {
          objRecord.setValue({ fieldId: "memo", value: memo });
        }
        var department = currentRec.getValue({ fieldId: "department" });
        if (department) {
          objRecord.setValue({ fieldId: "department", value: department });
        }
        var location = currentRec.getValue({ fieldId: "location" });
        if (location) {
          objRecord.setValue({ fieldId: "adjlocation", value: location });
        }
        var adjustAccount = currentRec.getValue({
          fieldId: "custbody_gbs_ir_adjust_acct",
        });
        if (adjustAccount) {
          objRecord.setValue({ fieldId: "account", value: adjustAccount });
        }
        var sublistCount = currentRec.getLineCount({
          sublistId: "item",
        });
        log.debug("sublistCount 111", sublistCount);
      
        for (var i = 0; i < sublistCount; i++) {
          
          var item = currentRec.getSublistValue({
            sublistId: "item",
            fieldId: "item",
            line: i,
          });
          if (item) {
            objRecord.setSublistValue({
              sublistId: "inventory",
              fieldId: "item",
              value: item,
              line: i,
              forceSyncSourcing: true,
            });
            objRecord.setSublistValue({
              sublistId: "inventory",
              fieldId: "location",
              value: location,
              line: i,
              forceSyncSourcing: true,
            });
            objRecord.setSublistValue({
              sublistId: "inventory",
              fieldId: "department",
              value: department,
              line: i,
            });
          }
          var adjustQuanty = currentRec.getSublistValue({
            sublistId: "item",
            fieldId: "quantity",
            line: i,
          });
          log.debug("adjustQuanty 146", adjustQuanty);
          if (adjustQuanty) {
            log.debug("adjustQuanty 147", adjustQuanty);
            objRecord.setSublistValue({
              sublistId: "inventory",
              fieldId: "adjustqtyby",
              value: adjustQuanty,
              line: i,
              forceSyncSourcing: true,
            });
          }
          log.debug("item", item);
  
          var units = currentRec.getSublistValue({
            sublistId: "item",
            fieldId: "units",
            line: i,
          });
          if (units) {
            objRecord.setSublistValue({
              sublistId: "inventory",
              fieldId: "units",
              value: units,
              line: i,
            });
          }
  
          var memo = currentRec.getSublistValue({
            sublistId: "item",
            fieldId: "memo",
            line: i,
          });
          if (memo) {
            objRecord.setSublistValue({
              sublistId: "inventory",
              fieldId: "item",
              value: memo,
              line: i,
            });
          }
          log.debug("memo", memo);
          var hasSublistSubrec = currentRec.hasSublistSubrecord({
            sublistId: "item",
            fieldId: "inventorydetail",
            line: i,
          });
          log.debug("value of i", i);
          log.debug("hasSublistSubrec", hasSublistSubrec);
          if (hasSublistSubrec) {
            log.debug("inside If");
          
            var InvDetailRecIR = currentRec.getSublistSubrecord({
              sublistId: "item",
              fieldId: "inventorydetail",
              line:i
            });
            log.debug("InvDetailRecIR", InvDetailRecIR);
            if (InvDetailRecIR) {
              var InvDetailRec = objRecord.getSublistSubrecord({
                sublistId: "inventory",
                fieldId: "inventorydetail",
                line: i,
              });    
              if (InvDetailRec) { 
                // try {
                //   InvDetailRec.setSublistValue({
                //     sublistId: "inventoryassignment",
                //     fieldId: "receiptinventorynumber",
                //     line: 0,
                //     value:1786,
                //   });
                // } catch (error) {
                //   log.debug("error 228 receiptinventorynumber", error);
                // }
  
                InvDetailRec.setSublistValue({
                  sublistId: "inventoryassignment",
                  fieldId: "issueinventorynumber", //"receiptinventorynumber",//
                  line: 0,
                  value: "12345",
                });
             
                InvDetailRec.setSublistValue({
                    sublistId: "inventoryassignment",
                    fieldId: "status", 
                    line: 0,
                    value:1,
                  });
                var binNum = InvDetailRecIR.getSublistValue({
                  sublistId: "inventoryassignment",
                  fieldId: "binnumber",
                  line: 0,
                });
                log.debug("binNum", binNum);
                InvDetailRec.setSublistValue({
                  sublistId: "inventoryassignment",
                  fieldId: "binnumber",
                  line: 0,
                  value: 263,
                  forceSyncSourcing: true,
                });
               
                log.debug("adjustQuanty223", adjustQuanty);
                InvDetailRec.setSublistValue({
                  sublistId: "inventoryassignment",
                  fieldId: "quantity",
                  line: 0,
                  value: 40,
                });
              
              }
            } else {
              log.debug("inside else 259");
              //  continue;
              break;
            }
          } else {
            log.debug("inside else 264");
            // continue;
            break;
          }
        }
  
        var lotSet = InvDetailRec.getSublistValue({
          sublistId: "inventoryassignment",
          fieldId: "issueinventorynumber",
          line: 0,
        });
  
        log.debug("lotSet 275", lotSet);
        // log.debug(
        //   "lotSet 276",
        //   InvDetailRec.getSublistValue({
        //     sublistId: "inventoryassignment",
        //     fieldId: "receiptinventorynumber",
        //     line: 0,
        //   })
        // );
        log.debug("InvDetailRec 243 ",InvDetailRec)
  
        var RecordCreated = objRecord.save();
        log.debug("RecordCreated", RecordCreated);
        if (RecordCreated) {
          var output = url.resolveRecord({
            recordType: "inventoryadjustment",
            recordId: RecordCreated,
          });
          windows.open(output);
        }
        return true;
      } catch (e) {
        log.debug("Error in saveRecord", e);
      }
    }
    return{
        afterSubmit:afterSubmit
    }


 })
b
dont use your for loop
Copy code
for (var i = 0; i < sublistCount; i++) {
dont use your currentRec
Copy code
var client = currentRec.getValue({ fieldId: "entity" });
none of the if statements
Copy code
if (item) {
you dont want to write more code to debug
you want as little as possible
honestly, you dont really want to set optional fields like
Copy code
objRecord.setValue({ fieldId: "customer", value: client });
e
Hi Battk, I am still having same error
Now my code is look like below`/**` *@NApiVersion 2.1 *@NScriptType userEventScript */ define(["N/record", "N/url"], function (record, url) { function afterSubmit(context) { try { log.debug("!--- Save Record Start--!"); let objRecord= record.create({ type:'inventoryadjustment' }); log.debug("18"); objRecord.setValue({ fieldId:'account', value:797 }); log.debug("23"); objRecord.setValue({ fieldId:'trandate', value:new Date() }); log.debug("28"); objRecord.setValue({ fieldId:'department', value:4 }); log.debug("33"); objRecord.setSublistValue({ sublistId:"inventory", fieldId:"item", value:3928, line:0 }) log.debug("40"); objRecord.setSublistValue({ sublistId:"inventory", fieldId:"location", value:1, line:0 }) log.debug("47"); objRecord.setSublistValue({ sublistId:"inventory", fieldId:"adjustqtyby", value:40, line:0 }); log.debug("54"); objRecord.setSublistValue({ sublistId:"inventory", fieldId:"department", value:4, line:0 }) log.debug("61"); let inventoryDetails=objRecord.getSublistSubrecord({ sublistId:"inventory", fieldId:"inventorydetail", line:0 }); log.debug("inventoryDetails",inventoryDetails); log.debug("67"); log.debug("inventoryDetails",inventoryDetails.getLineCount({sublistId:"inventoryassignment"})) try{ inventoryDetails.setSublistValue({ sublistId:"inventoryassignment ", fieldId:"issueinventorynumber", value:1786, line:0 }) log.debug("75"); inventoryDetails.setSublistValue({ sublistId:"inventoryassignment ", fieldId:"binnumber", value:263, line:0 }) log.debug("82"); inventoryDetails.setSublistValue({ sublistId:"inventoryassignment ", fieldId:"status", value:1, line:0 }) log.debug("89"); inventoryDetails.setSublistValue({ sublistId:"inventoryassignment ", fieldId:"quantity", value:40, line:0 }); log.debug("96");}catch(e){ log.error("Error while configuring inventory detail",e) } log.debug("inventoryDetails after configure",inventoryDetails.getLineCount({sublistId:"inventoryassignment"})) let recordSave=objRecord.save({ ignoreMandatoryFields: true}); log.debug("recordSave",recordSave) } catch (e) { log.debug("Error in saveRecord", e); } } return { afterSubmit: afterSubmit, }; });
all value are hardcoded and only mandatory value is set.
b
doesnt look like you are setting the right fields
make the inventory adjustment in the ui first
save it and then inspect it in script so that you know which fields to set
e
Yes i already did and got internal id of that fields from Netsuite Record browser.
b
what did the inventory detail look like
e
@battk It looks like this
b
inspect it in script
not the ui
e
Copy code
{
   type: "inventorydetail",
   isDynamic: false,
   fields: {
      nlloc: "0",
      nlsub: "1",
      ignoreqtyvalidation: "F",
      trandate: "12/8/2022",
      _eml_nkey_: "611679_SB1~7070~3~N",
      type: "inventorydetail",
      nsapiCT: "1670572708568",
      sys_id: "-6993289412317604",
      nluser: "7070",
      nldept: "0",
      tolocationusesbins: "F",
      item: "3928",
      quantity: "40.0",
      sys_parentid: "-6993289357059503",
      templatestored: "F",
      entryformquerystring: "item=3928&unit=&quantity=40&trandate=12/8/2022&location=1&uitype=&subrecord_parent_tran_type=invadjst",
      nlrole: "3",
      _csrf: "rKmRBCOYOBccU_dWfOfVw6iceSV9oiTjPrWBcVC9Y_YNfQo7c339oggjikkhJ4sZIeUiisoF5WnelHFlOgGK1toSeqym7-HPO30471XYsu5JdQUb3e-5PPzTrcJ4naWHkN5QbsQcvLkXbRSEWbPyNuS7cAQCDTlaKblBCKp3chE=",
      uitype: "MOH_STRICT_VALIDATION",
      baserecordtype: "inventorydetail",
      baseunitquantity: "40.0",
      totalquantity: "0",
      haslines: "F",
      tolocation: "-1",
      customform: "16",
      location: "1"
   },
   sublists: {
      inventoryassignment: {
         currentline: {
            basequantityavailable: "",
            binnumber: "",
            existingexpdate: "",
            existinginventorynumber: "",
            expirationdate: "",
            internalid: "-1",
            inventorydetail: "-1",
            inventorystatus: "1",
            issueinventorynumber: "",
            issueinventorynumber_display: "",
            lotquantityavailable: "",
            numberedrecordid: "",
            packcarton: "",
            pickcarton: "",
            quantity: "",
            quantityavailable: "",
            quantitystaged: "",
            receiptinventorynumber: "",
            sequencenumber: "",
            sys_id: "-6993289414837270",
            sys_parentid: "-6993289412317604",
            tobinnumber: "",
            tobinnumber_display: "",
            toinventorystatus: "",
            toinventorystatus_display: "",
            totalquantityavailable: "",
            "#": "1"
         }
      }
   }
}
@battk It look like this
b
that doesnt look right, the inventory assignment sublist looks empty
how are you loading it
e
I am using API of sutescript let inventoryDetails=objRecord.getSublistSubrecord({ sublistId:"inventory", fieldId:"inventorydetail", line:0 });
And setting sublist value using inventoryDetails.setSublistValue({ sublistId:"inventoryassignment ", fieldId:"issueinventorynumber", value:"TestLotNum", line:0 })
b
you are setting the wrong field
so im trying to get you to load an existing record to see which fields you need to set and with what values
you are not sharing enough code for me to determine how you are loading the inventory adjustment
from what you shared so far, it looks like you are sharing the record you are creating instead, which is not what im telling you to do
e
Ohk now i got it I will load existing record firt
Copy code
{
   id: "3082",
   type: "inventorydetail",
   isDynamic: false,
   fields: {
      nlloc: "0",
      nlsub: "1",
      createdfrom: "-1",
      ignoreqtyvalidation: "F",
      trandate: "12/9/2022",
      lineid: "1",
      _eml_nkey_: "611679_SB1~7070~3~N",
      type: "inventorydetail",
      transactionid: "240101",
      nsapiCT: "1670577998634",
      sys_id: "6998579465277034",
      nluser: "7070",
      nldept: "0",
      locationusesbins: "T",
      id: "3082",
      updatertype: "REGULAR",
      tolocationusesbins: "F",
      item: "3928",
      quantity: "13",
      sys_parentid: "6998579199463118",
      templatestored: "F",
      entryformquerystring: "item=3928&unit=103&quantity=13&e=T&trandate=12/9/2022&location=1&uitype=MOH_STRICT_VALIDATION&id=3082&subrecord_parent_tran_type=invadjst",
      nlrole: "3",
      _csrf: "rKmRBCOYOBccU_dWfOfVw6iceSV9oiTjPrWBcVC9Y_YNfQo7c339oggjikkhJ4sZIeUiisoF5WnelHFlOgGK1toSeqym7-HPO30471XYsu5JdQUb3e-5PPzTrcJ4naWHkN5QbsQcvLkXbRSEWbPyNuS7cAQCDTlaKblBCKp3chE=",
      uitype: "MOH_STRICT_VALIDATION",
      baserecordtype: "inventorydetail",
      baseunitquantity: "13",
      totalquantity: "13",
      haslines: "T",
      unit: "103",
      tolocation: "-1",
      customform: "16",
      location: "1",
      conversionrate: "1"
   },
   sublists: {
      inventoryassignment: {
         currentline: {
            basequantityavailable: "",
            binnumber: "",
            existingexpdate: "",
            existinginventorynumber: "",
            expirationdate: "",
            internalid: "-1",
            inventorydetail: "-1",
            inventorystatus: "1",
            issueinventorynumber: "",
            issueinventorynumber_display: "",
            lotquantityavailable: "",
            numberedrecordid: "",
            packcarton: "",
            pickcarton: "",
            quantity: "",
            quantityavailable: "",
            quantitystaged: "",
            receiptinventorynumber: "",
            sequencenumber: "",
            sys_id: "-6998579467820443",
            sys_parentid: "6998579465277034",
            tobinnumber: "",
            tobinnumber_display: "",
            toinventorystatus: "",
            toinventorystatus_display: "",
            totalquantityavailable: "",
            "#": "2"
         },
         "line 1": {
            basequantityavailable: null,
            binnumber: "1",
            binnumber_display: "DSP Cage Rack A",
            existingexpdate: "11/1/2022",
            existinginventorynumber: null,
            expirationdate: "11/1/2022",
            internalid: "3292",
            inventorydetail:3082,
            inventorystatus: "1",
            inventorystatus_display: null,
            issueinventorynumber: null,
            issueinventorynumber_display: null,
            lotquantityavailable: null,
            numberedrecordid: "1786",
            packcarton: null,
            pickcarton: null,
            quantity: "13",
            quantityavailable: null,
            quantitystaged: null,
            receiptinventorynumber: "12345",
            sequencenumber: "1",
            sys_id: "6998579459938863",
            sys_parentid: "6998579465277034",
            tobinnumber: null,
            tobinnumber_display: null,
            toinventorystatus: null,
            toinventorystatus_display: null,
            totalquantityavailable: null
         }
      }
   }
}
b
thats not the same as your screenshot, but its probably good enough to see which fields are being set and with what values
you are going to need so set the same fields when you are creating your own
e
yes
This object is return for this inventory detail subrecord
@battk i am able to configure inventory details record by yours direction thank you so much