how to filter based on selected stock room ?

chercm
Mega Sage

Stockroom -> alm_stockroom

Consumable -> alm_consumable

 

i tried to use this qualifier on the consumable but i kept getting everything not the one specified to the selected stock room 

 

javascript: "install_status=6^stockroom=" + current.getValue('stockroom');
3 ACCEPTED SOLUTIONS

Hi @chercm ,

 

It should be u_stockroom. Replace with u_ for stockroom n check.

 

Thanks,

Danish

View solution in original post

@chercm It is a custom field change your reference qualifier to this.

 

javascript : "install_status=6^stockroom=" + current.u_stockroom;

 

Thanks,
Anvesh

View solution in original post

Hi @chercm 

What I understood is you are expecting to deduct the stock when a Catalog Task is closed.

 

Try creating a business rule like the one below.

 

Name: Deduct asset quantity from stock

Table: sc_task

Advanced: True

 

When to Run Section:

When: After

Insert: True

Update: True

 

Conditions:

Asset :: is Not Empty

Stock Room :: is Not Empty

State :: Changes to :: Closed Complete

 

 

Advanced Section:

 

Script:

 

(function executeRule(current, previous){

var almGr = new GlideRecord('alm_asset');

almGr.addQuery('sys_id', current.u_reference_1);

almGr.query();

if(almGr.next()){

   var quantity= almGr.getValue('quantity');

   var req_quantity= current.request_item.quantity;

   try{

      quantity = quantity - req_quantity;

      if(quantity >= 0){

         almGr.setValue('quantity', quantity);

         almGr.update();

      } else{

         gs.addErrorMessage('Available quantity is less than the requested quantity, unable to update the stock.');

      }

   }catch(ex){

      gs.addErrorMessage('Unexpected Error:' + ex.message);

   }

}

 

}

 

)(current, previous)

 

 

Please mark my answer helpful and accept as solution if it helped you 👍

Thanks,
Anvesh

View solution in original post

32 REPLIES 32

Hi @chercm 

What I understood is you are expecting to deduct the stock when a Catalog Task is closed.

 

Try creating a business rule like the one below.

 

Name: Deduct asset quantity from stock

Table: sc_task

Advanced: True

 

When to Run Section:

When: After

Insert: True

Update: True

 

Conditions:

Asset :: is Not Empty

Stock Room :: is Not Empty

State :: Changes to :: Closed Complete

 

 

Advanced Section:

 

Script:

 

(function executeRule(current, previous){

var almGr = new GlideRecord('alm_asset');

almGr.addQuery('sys_id', current.u_reference_1);

almGr.query();

if(almGr.next()){

   var quantity= almGr.getValue('quantity');

   var req_quantity= current.request_item.quantity;

   try{

      quantity = quantity - req_quantity;

      if(quantity >= 0){

         almGr.setValue('quantity', quantity);

         almGr.update();

      } else{

         gs.addErrorMessage('Available quantity is less than the requested quantity, unable to update the stock.');

      }

   }catch(ex){

      gs.addErrorMessage('Unexpected Error:' + ex.message);

   }

}

 

}

 

)(current, previous)

 

 

Please mark my answer helpful and accept as solution if it helped you 👍

Thanks,
Anvesh

i am trying to create a ritm form but what should i enter as the field : what should be displayed and store on the catalog builder ? 

@AnveshKumar M 

 

chercm_0-1696565385337.png

 

@chercm In general it should be better to use reference fields for this kind of scenario. Which will display Display name of the consumable but store the actual reference,  I mean sys ID of the record which will be useful for future reference.

 

But if your requirement is for just a select box with choices you can choose the Display Name (display_name) field for better User Experience.

Thanks,
Anvesh

@AnveshKumar M @Danish Bhairag2 

 

i tried to create RITM form using catalog builder but it is not what i was looking for. how can i design the form with the request name - sys_users and the item requested from alm_consumable and submit button. It should create ritm form and sctask for the assigned team 

 

Screenshot 2023-10-06 at 12.41.12 PM.png

Hi @chercm ,

 

You can create both the fields as a Reference field. Where requestor can select the values which they wish for. Then u can create a flow designer & attach it to your catalog item under process engine tab. Flow designer should include a step for creating a task which will be assigned to the specific team.

 

Thanks,

Danish