Архив

Архив раздела ‘OEBS’

OEBS API INV – Текущее количество для позиции (ONHAND)

10 Декабрь 2014 Нет комментариев

Пример использования API для получения текущего или доступного для резервирования количества для позиции:


declare
  p_organization_id   NUMBER := 155;
  p_inventory_item_id NUMBER := 546;
  --
  p_revision          VARCHAR2(3);
  p_lot_number        VARCHAR2(80);
  p_subinventory_code VARCHAR2(10) := 'VAlVALVAL';
  p_locator_id        NUMBER;  
  --
  lx_qoh    NUMBER; -- Total Quantity (Onhand)
  lx_rqoh   NUMBER;
  lx_qr     NUMBER;
  lx_qs     NUMBER;
  lx_att    NUMBER; -- Available to Transact
  lx_atr    NUMBER; -- Available to Reserve
  --
  lx_return_status VARCHAR2(1);
  lx_msg_count     NUMBER;
  lx_msg_data      VARCHAR2(4000);
begin
  inv_quantity_tree_grp.clear_quantity_cache;
  inv_quantity_tree_pub.query_quantities(
        p_api_version_number         => 1.0,
        p_init_msg_lst               => fnd_api.g_false,
        x_return_status              => lx_return_status,
        x_msg_count                  => lx_msg_count,
        x_msg_data                   => lx_msg_data,
        --
        p_organization_id            => p_organization_id,
        p_inventory_item_id          => p_inventory_item_id,
        p_tree_mode                  => apps.inv_quantity_tree_pub.g_transaction_mode,
        p_is_revision_control        => case when p_revision is null   then FALSE else TRUE end,
        p_is_lot_control             => case when p_lot_number is null then FALSE else TRUE end,
        p_is_serial_control          => FALSE,
                                         
        p_revision                   => p_revision,
        p_lot_number                 => p_lot_number,
        p_subinventory_code          => p_subinventory_code,
        p_locator_id                 => p_locator_id,
                                         
        x_qoh                        => lx_qoh,  -- OnHand Quantity
        x_rqoh                       => lx_rqoh,
        x_qr                         => lx_qr,
        x_qs                         => lx_qs,
        x_att                        => lx_att, -- Available To Transact
        x_atr                        => lx_atr  -- Available To Reserve
                                        );
   if lx_return_status ='S' then
     DBMS_OUTPUT.put_line ('Общее количество: ' || lx_qoh);
     DBMS_OUTPUT.put_line ('Доступно для резервирования: ' || lx_atr);
     DBMS_OUTPUT.put_line ('Доступно для транзакции: ' || lx_att);
   else
    fnd_msg_pub.count_and_get(p_encoded => fnd_api.g_false,
                              p_count   => lx_msg_count,
                              p_data    => lx_msg_data);
 
    dbms_output.put_line('ERROR for p_inventory_item_id='||p_inventory_item_id);
 
    if lx_msg_count = 1 then
      dbms_output.put_line(lx_msg_data);
    else
      FOR i IN 1 .. lx_msg_count LOOP
        dbms_output.put_line(fnd_msg_pub.get(fnd_msg_pub.g_next,
                                             fnd_api.g_false));
      END LOOP;
    end if;
  end if;   
                                           
end;

Так же есть запрос для просмотра текущего количества Модуль INV – Текущее количество для позиции

OEBS API: Деактивация счета заказчика

1 Октябрь 2014 Нет комментариев

Пример использования API для перевода счета заказчика в статус «Неактивно» — деактивация счета заказчика.

declare
  l_cust_account_rec hz_cust_account_v2pub.cust_account_rec_type;
  l_object_version_number number;
  --
  x_return_status varchar2(1);
  x_msg_data      varchar2(4000);
  x_msg_count     number;
begin
  l_cust_account_rec := null;
  l_cust_account_rec.cust_account_id := 9787987;
  l_cust_account_rec.status := 'I';
  
  select ca.object_version_number into l_object_version_number 
  from hz_cust_accounts ca 
  where cust_account_id = l_cust_account_rec.cust_account_id;
  -- Call the procedure
  hz_cust_account_v2pub.update_cust_account(p_init_msg_list         => 'T',
                                            p_cust_account_rec      => l_cust_account_rec,
                                            p_object_version_number => l_object_version_number,
                                            x_return_status         => x_return_status,
                                            x_msg_count             => x_msg_count,
                                            x_msg_data              => x_msg_data);
                                            
  dbms_output.put_line('x_return_status='||x_return_status);   
  commit;                                         
end;