zoukankan      html  css  js  c++  java
  • Oracle EBS发放销售订单

    
    模拟发放销售订单界面进行发放操作

    PROCEDURE insert_row(x_batch_id OUT NUMBER) IS
      l_autopack_flag  VARCHAR2(1 );
      l_autopack_level NUMBER;
      l_release_method VARCHAR2(1 );
      l_release_online VARCHAR2(240 ) := fnd_profile.value('SHP_PICK_RELEASE_ONLINE' );
    
      --bugfix 11830201 added cursor
      CURSOR enable_prop(org_id NUMBER) IS
        SELECT nvl(MAX (project_reference_enabled), 'N')
          FROM pjm_org_parameters
         WHERE organization_id = org_id;
    
      l_enable_flag VARCHAR2(1 ) := 'N';
      l_return_code BOOLEAN DEFAULT TRUE;
    
      CURSOR cur_data(p_organization_id IN NUMBER ) IS
        SELECT wsh.picking_rule_name,
               wsh.backorders_only_flag,
               wsh.backorders,
               wsh.shipment_priority,
               wsh.shipment_priority_code,
               wsh.organization_id,
               wsh.org_id,
               wsh.warehouse_id_lov,
               wsh.warehouse,
               wsh.warehouse_code,
               wsh.reservation_star,
               wsh.existing_rsvs_only_flag,
               wsh.ship_method_code,
               wsh.from_scheduled_ship_date,
               wsh.to_scheduled_ship_date,
               wsh.from_requested_date,
               wsh.to_requested_date,
               wsh.order_type,
               wsh.order_type_id,
               wsh.order_number,
               wsh.order_header_id,
               wsh.ship_set_number,
               wsh.inventory_item_id,
               wsh.item_description,
               wsh.customer_name,
               wsh.old_customer_name,
               wsh.customer_id,
               wsh.ship_to_location,
               wsh.ship_to_location_id,
               wsh.include_planned_lines,
               wsh.autocreate_delivery_flag,
               wsh.pick_grouping_rule_name,
               wsh.pick_seq_rule_name,
               wsh.task_id,
               wsh.project_id,
               wsh.autodetail_pr_flag,
               wsh.auto_pick_confirm_flag,
               wsh.ship_set_number ship_set_id,
               wsh.ship_from_location,
               wsh.ship_from_location_id,
               wsh.document_set_id,
               wsh.doc_name,
               wsh.pick_from_subinventory,
               wsh.pick_from_locator_id,
               wsh.pick_from_locator,
               wsh.default_stage_subinventory,
               wsh.default_stage_locator_id,
               wsh.default_stage_locator,
               wsh.ship_method_meaning,
               wsh.autopack_flag,
               wsh.autopack_level,
               wsh.ship_confirm_rule_id,
               wsh.ship_confirm_rule_name,
               wsh.task_planning_flag,
               wsh.region_id,
               wsh.zone_id,
               wsh.ac_delivery_criteria,
               wsh.rel_subinventory,
               wsh.category_set_id,
               wsh.category_id,
               wsh.sch_start_days,
               wsh.sch_end_days,
               wsh.sch_start_hours,
               wsh.sch_end_hours,
               wsh.req_start_days,
               wsh.req_end_days,
               wsh.req_start_hours,
               wsh.req_end_hours,
               wsh.append_flag,
               wsh.task_priority,
               wsh.allocation_method,
               wsh.crossdock_criteria_id,
               wsh.dynamic_replenishment_flag,
               wsh.client_id,
               wsh.client_name
          FROM (SELECT wpr.name picking_rule_name,
                       wpr.backorders_only_flag,
                       decode(s2.meaning,
                              'Exclude',
                              'Unreleased',
                              'Include',
                              'All',
                              'Only',
                              'Backordered') backorders,
                       s1.meaning shipment_priority,
                       wpr.shipment_priority_code,
                       wpr.organization_id,
                       wpr.organization_id org_id,
                       wpr.organization_id warehouse_id_lov,
                       h_org_tl.name warehouse,
                       org.organization_code warehouse_code,
                       decode(wpr.existing_rsvs_only_flag, 'Y', '*' , NULL) reservation_star,
                       wpr.existing_rsvs_only_flag,
                       wpr.ship_method_code,
                       wpr.from_scheduled_ship_date,
                       wpr.to_scheduled_ship_date,
                       wpr.from_requested_date,
                       wpr.to_requested_date,
                       ott.name order_type,
                       wpr.order_type_id,
                       to_char(h.order_number) order_number,
                       wpr.order_header_id,
                       os.set_name ship_set_number,
                       wpr.inventory_item_id,
                       msi.description item_description,
                       substrb(party.party_name, 1, 50 ) customer_name,
                       substrb(party.party_name, 1, 50 ) old_customer_name,
                       wpr.customer_id,
                       whzl.ui_location_code ship_to_location,
                       wpr.ship_to_location_id,
                       wpr.include_planned_lines,
                       wpr.autocreate_delivery_flag,
                       pgr.name pick_grouping_rule_name,
                       rsqr.name pick_seq_rule_name,
                       wpr.task_id,
                       wpr.project_id,
                       wpr.autodetail_pr_flag,
                       wpr.auto_pick_confirm_flag,
                       wpr.ship_set_number ship_set_id,
                       whrl.ui_location_code ship_from_location,
                       wpr.ship_from_location_id,
                       wpr.document_set_id,
                       wrs.name doc_name,
                       wpr.pick_from_subinventory,
                       wpr.pick_from_locator_id,
                       NULL pick_from_locator,
                       wpr.default_stage_subinventory,
                       wpr.default_stage_locator_id,
                       NULL default_stage_locator,
                       sm.meaning ship_method_meaning,
                       wpr.autopack_flag,
                       wpr.autopack_level,
                       wpr.ship_confirm_rule_id,
                       wscr.name ship_confirm_rule_name,
                       wpr.task_planning_flag,
                       wpr.region_id,
                       wpr.zone_id,
                       wpr.ac_delivery_criteria,
                       wpr.rel_subinventory,
                       wpr.category_set_id,
                       wpr.category_id,
                       wpr.sch_start_days,
                       wpr.sch_end_days,
                       wpr.sch_start_hours,
                       wpr.sch_end_hours,
                       wpr.req_start_days,
                       wpr.req_end_days,
                       wpr.req_start_hours,
                       wpr.req_end_hours,
                       wpr.append_flag,
                       wpr.task_priority,
                       wpr.allocation_method,
                       wpr.crossdock_criteria_id,
                       wpr.dynamic_replenishment_flag,
                       wpr.client_id client_id,
                       mcpv.client_name client_name
                  FROM wsh_picking_rules            wpr,
                       mtl_parameters               org,
                       hr_all_organization_units_tl h_org_tl,
                       hz_parties                   party,
                       hz_cust_accounts             cust_acct,
                       fnd_lookup_values            s1,
                       fnd_lookup_values            s2,
                       oe_sets                      os,
                       wsh_pick_grouping_rules      pgr,
                       wsh_pick_sequence_rules      rsqr,
                       oe_transaction_types_tl      ott,
                       oe_transaction_types_all     otb,
                       oe_order_headers_all         h,
                       wsh_locations                whrl,
                       wsh_locations                whzl,
                       wsh_report_sets              wrs,
                       wsh_ship_confirm_rules       wscr,
                       mtl_system_items_b           msi,
                       fnd_lookup_values            sm,
                       mtl_client_parameters_v      mcpv
                 WHERE org.organization_id(+) = wpr.organization_id
                   AND h_org_tl.organization_id(+) = wpr.organization_id
                   AND cust_acct.cust_account_id(+) = wpr.customer_id
                   AND cust_acct.party_id = party.party_id(+)
                   AND h_org_tl.language(+) = userenv('LANG' )
                   AND pgr.pick_grouping_rule_id(+) = wpr.pick_grouping_rule_id
                   AND rsqr.pick_sequence_rule_id(+) = wpr.pick_sequence_rule_id
                   AND wpr.ship_confirm_rule_id = wscr.ship_confirm_rule_id(+)
                   AND s1.lookup_code(+) = wpr.shipment_priority_code
                   AND s1.lookup_type(+) = 'SHIPMENT_PRIORITY'
                   AND s1.language(+) = userenv('LANG' )
                   AND s1.view_application_id(+) = 660
                   AND s1.security_group_id(+) = 0
                   AND s2.lookup_code = wpr.backorders_only_flag
                   AND s2.lookup_type = 'PICK_RELEASE_OPTIONS'
                   AND s2.language(+) = userenv('LANG' )
                   AND s2.view_application_id(+) = 660
                   AND s2.security_group_id(+) = 0
                   AND otb.transaction_type_id(+) = nvl(wpr.order_type_id, -1)
                   AND otb.transaction_type_code(+) = 'ORDER'
                   AND otb.transaction_type_id = ott.transaction_type_id(+)
                   AND ott.language(+) = userenv('LANG' )
                   AND whzl.wsh_location_id(+) =
                       nvl(wpr.ship_to_location_id, - 1)
                   AND whrl.wsh_location_id(+) =
                       nvl(wpr.ship_from_location_id, - 1)
                   AND wrs.report_set_id(+) = wpr.document_set_id
                   AND os.set_id(+) = nvl(wpr.ship_set_number, -1)
                   AND h.header_id(+) = nvl(wpr.order_header_id, -1)
                   AND msi.inventory_item_id(+) = wpr.inventory_item_id
                   AND msi.organization_id(+) = p_organization_id
                   AND trunc(SYSDATE ) BETWEEN
                       nvl(wpr.start_date_active, trunc( SYSDATE)) AND
                       nvl(wpr.end_date_active, trunc( SYSDATE) + 1 )
                   AND sm.lookup_type(+) = 'SHIP_METHOD'
                   AND sm.lookup_code(+) = wpr.ship_method_code
                   AND sm.view_application_id(+) = 3
                   AND sm.language(+) = userenv('LANG' )
                   AND mcpv.client_id(+) = wpr.client_id) wsh
         WHERE picking_rule_name = :control.pick_rule
         ORDER BY wsh.picking_rule_name;
      l_document_set_id NUMBER;
      l_append_flag     VARCHAR2(1 );
      l_row_id          VARCHAR2(50 );
      l_order_header_id NUMBER;
      l_order_type      VARCHAR2(240 );
      l_customer_name   VARCHAR2(240 );
      l_order_type_id   NUMBER;
      l_customer_id     NUMBER;
      l_batch_name      VARCHAR2(240 );
      l_organization_id NUMBER;
      l_request_id      NUMBER;
      l_org_id          NUMBER;
    BEGIN
      BEGIN
        SELECT DISTINCT otl.name,
                        substrb(party.party_name, 1, 50 ) customer_name,
                        wdd.source_header_type_id,
                        cust_acct.cust_account_id customer_id,
                        wdd.organization_id,
                        wdd.org_id
          INTO l_order_type,
               l_customer_name,
               l_order_type_id,
               l_customer_id,
               l_organization_id,
               l_org_id
          FROM wsh_delivery_details    wdd,
               hz_parties              party,
               hz_cust_accounts        cust_acct,
               oe_transaction_types_tl otl
         WHERE wdd.customer_id = cust_acct.cust_account_id /*customer id*/
           AND cust_acct.party_id = party.party_id
           AND otl.language = userenv('LANG' )
           AND otl.transaction_type_id = wdd.source_header_type_id
           AND wdd.source_header_id = :query_find.header_id
           AND wdd.source_code = 'OE'
           AND wdd.released_status IN ('B', 'R', 'X' );
      EXCEPTION
        WHEN OTHERS THEN
          NULL;
      END;
      FOR rec_data IN cur_data(l_organization_id) LOOP
        IF l_release_method IS NULL THEN
          -- Commit from save instead of buttons ( user chose Save from the menu )
          IF ((nvl(l_release_online, 'N' ) = 'Y') AND
             (:query_find.header_id IS NOT NULL)) THEN
            l_release_method := 'O';
          ELSE
            l_release_method := 'C';
          END IF ;
        END IF ;
     
        IF l_release_method = 'O' THEN
          NULL;
        ELSE
          IF rec_data.document_set_id IS NULL AND rec_data.doc_name IS NOT NULL THEN
            l_document_set_id := fnd_profile.value('OE_PICKING_DOCUMENT_SET_DEFAULT' );
          END IF ;
        END IF ;
     
        IF rec_data.organization_id IS NULL THEN
          l_append_flag := 'N';
        ELSE
          --bugfix 11830201 added cursor
          OPEN enable_prop(rec_data.organization_id);
          FETCH enable_prop
            INTO l_enable_flag;
          CLOSE enable_prop;
        END IF ;
        --
        IF l_enable_flag = 'Y' THEN
       
          l_return_code := pjm_project_locator.check_project_references(p_organization_id => rec_data.organization_id,
                                                                        p_locator_id      => rec_data.default_stage_locator_id,
                                                                        p_validation_mode => 'SPECIFIC' ,
                                                                        p_required_flag   => 'N' ,
                                                                        p_project_id      => rec_data.project_id,
                                                                        p_task_id         => rec_data.task_id);
          IF (l_return_code = FALSE ) THEN
            fnd_message.retrieve;
            fnd_message.error;
            RAISE form_trigger_failure;
          END IF ;
        END IF ;
        --
        IF (l_return_code = TRUE ) THEN
       
          wsh_picking_batches_pkg.insert_row(x_rowid                      => l_row_id,
                                             x_batch_id                   => x_batch_id,
                                             p_creation_date              => SYSDATE,
                                             p_created_by                 => fnd_global.user_id,
                                             p_last_update_date           => SYSDATE,
                                             p_last_updated_by            => fnd_global.user_id,
                                             p_last_update_login          => fnd_global.login_id,
                                             x_name                       => l_batch_name,
                                             p_backorders_only_flag       => rec_data.backorders_only_flag,
                                             p_document_set_id            => l_document_set_id,
                                             p_existing_rsvs_only_flag    => rec_data.existing_rsvs_only_flag,
                                             p_shipment_priority_code     => rec_data.shipment_priority_code,
                                             p_ship_method_code           => rec_data.ship_method_code,
                                             p_customer_id                => l_customer_id,
                                             p_order_header_id            => :query_find.header_id,
                                             p_ship_set_number            => rec_data.ship_set_id,
                                             p_inventory_item_id          => rec_data.inventory_item_id,
                                             p_order_type_id              => l_order_type_id,
                                             p_from_requested_date        => to_date(to_char(rec_data.from_requested_date,
                                                                                             'DD-MON-YYYY HH24:MI:SS' ),
                                                                                     'DD-MON-YYYY HH24:MI:SS' ),
                                             p_to_requested_date          => to_date(to_char(rec_data.to_requested_date,
                                                                                             'DD-MON-YYYY HH24:MI:SS' ),
                                                                                     'DD-MON-YYYY HH24:MI:SS' ),
                                             p_from_scheduled_ship_date   => to_date(to_char(rec_data.from_scheduled_ship_date,
                                                                                             'DD-MON-YYYY HH24:MI:SS' ),
                                                                                     'DD-MON-YYYY HH24:MI:SS' ),
                                             p_to_scheduled_ship_date     => to_date(to_char(rec_data.to_scheduled_ship_date,
                                                                                             'DD-MON-YYYY HH24:MI:SS' ),
                                                                                     'DD-MON-YYYY HH24:MI:SS' ),
                                             p_ship_to_location_id        => rec_data.ship_to_location_id,
                                             p_ship_from_location_id      => rec_data.ship_from_location_id,
                                             p_trip_id                    => NULL,
                                             p_delivery_id                => NULL,
                                             p_include_planned_lines      => rec_data.include_planned_lines,
                                             p_pick_grouping_rule_id      => NULL,
                                             p_pick_sequence_rule_id      => NULL,
                                             p_autocreate_delivery_flag   => rec_data.autocreate_delivery_flag,
                                             p_attribute_category         => NULL,
                                             p_attribute1                 => NULL,
                                             p_attribute2                 => NULL,
                                             p_attribute3                 => NULL,
                                             p_attribute4                 => NULL,
                                             p_attribute5                 => NULL,
                                             p_attribute6                 => NULL,
                                             p_attribute7                 => NULL,
                                             p_attribute8                 => NULL,
                                             p_attribute9                 => NULL,
                                             p_attribute10                => NULL,
                                             p_attribute11                => NULL,
                                             p_attribute12                => NULL,
                                             p_attribute13                => NULL,
                                             p_attribute14                => NULL,
                                             p_attribute15                => NULL,
                                             p_autodetail_pr_flag         => rec_data.autodetail_pr_flag,
                                             p_carrier_id                 => NULL,
                                             p_trip_stop_id               => NULL,
                                             p_default_stage_subinventory => rec_data.default_stage_subinventory,
                                             p_default_stage_locator_id   => rec_data.default_stage_locator_id,
                                             p_pick_from_subinventory     => rec_data.pick_from_subinventory,
                                             p_pick_from_locator_id       => rec_data.pick_from_locator_id,
                                             p_auto_pick_confirm_flag     => rec_data.auto_pick_confirm_flag,
                                             p_delivery_detail_id         => NULL,
                                             p_project_id                 => rec_data.project_id,
                                             p_task_id                    => rec_data.task_id,
                                             p_organization_id            => rec_data.organization_id,
                                             p_ship_confirm_rule_id       => rec_data.ship_confirm_rule_id,
                                             p_autopack_flag              => rec_data.autopack_flag,
                                             p_autopack_level             => rec_data.autopack_level,
                                             p_task_planning_flag         => rec_data.task_planning_flag,
                                             p_dynamic_replenishment_flag => rec_data.dynamic_replenishment_flag, --bug# 6689448 (replenishment project)
                                             -- rlanka : Pack J
                                             p_regionid              => rec_data.region_id,
                                             p_zoneid                => rec_data.zone_id,
                                             p_categoryid            => rec_data.category_id,
                                             p_categorysetid         => rec_data.category_set_id,
                                             p_acdelivcriteria       => rec_data.ac_delivery_criteria,
                                             p_relsubinventory       => rec_data.rel_subinventory,
                                             p_append_flag           => l_append_flag,
                                             p_task_priority         => rec_data.task_priority,
                                             p_actual_departure_date => NULL,
                                             -- X-dock
                                             p_allocation_method     => rec_data.allocation_method,
                                             p_crossdock_criteria_id => rec_data.crossdock_criteria_id,
                                             p_client_id             => rec_data.client_id --Modified R12.1.1 LSP PROJECT
                                             );
        END IF ;
      END LOOP;
      --调用请求
      l_request_id := fnd_request.submit_request(application => 'CUX',
                                                 program     => 'CUXOMLPKP' ,
                                                 description => NULL,
                                                 start_time  => SYSDATE ,
                                                 sub_request => FALSE ,
                                                 argument1   => x_batch_id,
                                                 argument2   => l_org_id,
                                                 argument3   => :query_find.header_id);
      IF l_request_id IS NULL OR l_request_id = 0 THEN
        fnd_message.set_string( '提交挑库选择列表生成请求出错.' );
        fnd_message.error;
        RAISE form_trigger_failure;
      ELSE
        forms_ddl( 'COMMIT');
        fnd_message.debug( '挑库发放成功,请查看请求.' );
      END IF;
    END insert_row;
    


    --调用请求
    CUXOMLPKP请求调用例如以下:
        l_request_id := wsh_picking_batches_pkg.submit_release_request(p_batch_id    => p_batch_id,
                                                                       p_log_level   => 0 ,
                                                                       p_num_workers => nvl(fnd_profile.value('WSH_PR_NUM_WORKERS' ),
                                                                                            1));
        IF l_request_id IS NULL OR l_request_id = 0 THEN
          errbuf  := '提交挑库选择列表生成请求出错.' ;
          retcode := '2';
          RETURN;
        END IF ;
    


  • 相关阅读:
    项目1 外星人入侵 第14章(计分)
    项目1 外星人入侵 第13章(外星人)
    项目1 外星人入侵 第12章(武装飞船)
    《Python编程从入门到实践》学习笔记10(第11章:测试函数)
    《python编程:从入门到实践》学习笔记9(第10章文件和异常)
    《Python编程从入门到实践》学习笔记8(第9章:类)
    《Python编程从入门到实践》学习笔记7(第8章:函数)
    Python编程从入门到实践:学习笔记6(第7章:用户输入和while循环)
    学习笔记5(第六章:字典)
    学习笔记4(第5章:if语句)
  • 原文地址:https://www.cnblogs.com/cxchanpin/p/7043678.html
Copyright © 2011-2022 走看看