自动创建web adi的代码

/*
Steps to create the custom integrator. 
Step 1. Using bne_integrator_utils.CREATE_INTEGRATOR package create the custom integrator 
Step 2. Using bne_integrator_utils.CREATE_INTERFACE_FOR_API package create the interface for the created integrator. 
Step 3. Using bne_integrator_utils.CREATE_DEFAULT_LAYOUT package create the default layout for the created integrator with the interface. 
Step 4. Adding POPList for the required columns. 
Step 5. Change the excel column prompts, by default the column headers will come as Database column name.  (bne_interface_cols_tl )
*/
DECLARE
    FUNCTION is_exists_map(p_application_id  IN  NUMBER,
                         p_content_code    IN  VARCHAR2RETURN BOOLEAN  IS
     CURSOR csr  IS
       SELECT  1
         FROM bne_mapping_lines
        WHERE application_id  = p_application_id
          AND content_code  = p_content_code
    l_dummy  NUMBER
    retval  BOOLEAN
   BEGIN
     OPEN csr
     FETCH csr
       INTO l_dummy
     IF csr %NOTFOUND  THEN
      retval : = FALSE
     ELSE
      retval : = TRUE
     END  IF
     CLOSE csr
     RETURN retval
   END;
   -- BNE_CONTENT_UTILS.CREATE_CONTENT_TO_API_MAP
   PROCEDURE create_map_line(p_application_id  IN  NUMBER,
                            p_interface_code  IN  VARCHAR2,
                            p_content_code    IN  VARCHAR2,
                            p_mapping_code    IN  VARCHAR2IS
     CURSOR mapping_cols_c(cp_application_id  IN  NUMBER, cp_content_code  IN  VARCHAR2, cp_interface_code  IN  VARCHAR2IS
       SELECT cc.application_id content_app_id,
             cc.content_code,
             cc.sequence_num content_seq_num,
             ic.application_id interface_app_id,
             ic.interface_code,
             ic.sequence_num interface_seq_num
         FROM bne_content_cols_b cc, bne_interface_cols_b ic
        WHERE cc.application_id  = ic.application_id
          AND cc.application_id  = cp_application_id
          AND (cc. col_name  = ic.interface_col_name  OR
             cc. col_name  = substr(ic.interface_col_name,  3OR
             cc.sequence_num  = ic.sequence_num  -- add by sky.chan 
             )
          AND cc.content_code  = cp_content_code
          AND ic.interface_code  = cp_interface_code
        ORDER  BY cc.sequence_num  ASC
    vn_sequence  NUMBER
   BEGIN
     IF  NOT is_exists_map(p_application_id, p_content_code)  THEN
      vn_sequence : =  0
        FOR mapping_cols_rec  IN mapping_cols_c(p_application_id,
                                             p_content_code,
                                             p_interface_code) LOOP
         vn_sequence : = vn_sequence  +  1
          --  Create the Mapping records in the BNE_MAPPING_LINES table
          INSERT  INTO bne_mapping_lines
          (application_id,
           mapping_code,
           sequence_num,
           content_app_id,
           content_code,
           content_seq_num,
           interface_app_id,
           interface_code,
           interface_seq_num,
           object_version_number,
           created_by,
           creation_date,
           last_updated_by,
           last_update_date)
         VALUES
          (p_application_id,
           p_mapping_code,
           vn_sequence,
           mapping_cols_rec.content_app_id,
           mapping_cols_rec.content_code,
           mapping_cols_rec.content_seq_num,
           mapping_cols_rec.interface_app_id,
           mapping_cols_rec.interface_code,
           mapping_cols_rec.interface_seq_num,
            1,
           fnd_global. user_id,
           SYSDATE,
           fnd_global. user_id,
           SYSDATE)
          EXIT  WHEN mapping_cols_c %NOTFOUND
        END LOOP
     END  IF
   END;
    PROCEDURE create_bne_integrator(p_application_id   IN  VARCHAR2,
                                  p_object_code      IN  VARCHAR2,
                                  p_integrator_name  IN  VARCHAR2,
                                  p_package_name     IN  VARCHAR2,
                                  p_procedure_name   IN  VARCHAR2IS
    l_integrator_name  VARCHAR2( 200) : =  ''
    l_integrator_code  VARCHAR2( 100)
    l_param_list_code  VARCHAR2( 100)
    l_interface_code   VARCHAR2( 100)
    l_mapping_code     VARCHAR2( 100)
    l_layout_code      VARCHAR2( 100)
    l_content_code     VARCHAR2( 100)
    l_parameters        VARCHAR2( 500) : =  ' bne:page=BneCreateDoc ' 
                                       chr( 38)   ' bne: '
    l_rowid            VARCHAR2( 100)
    l_function_id      NUMBER
   BEGIN
     -- todo 1 create integrator
    bne_integrator_utils.create_integrator(p_application_id        => p_application_id,
                                           p_object_code           => p_object_code,
                                           p_integrator_user_name  => p_integrator_name,
                                           p_language              => userenv( ' LANG '),
                                           p_source_language       => userenv( ' LANG '),
                                           p_user_id               => fnd_global. user_id,
                                           p_integrator_code       => l_integrator_code)
     -- todo 2 create content
     -- --todo 2.1 create empty content
     bne_content_utils.create_content(p_application_id,
                                     p_object_code,
                                     l_integrator_code,
                                      ' None ',
                                     userenv( ' LANG '),
                                     userenv( ' LANG '),
                                      '',
                                     fnd_global. user_id,
                                     l_content_code)
     -- --todo 2.2 create text content 
     bne_content_utils.create_content_text(p_application_id,
                                          p_object_code   ' _TXT ',
                                          l_integrator_code,
                                           ' Text ',
                                           2,
                                           ' P ',
                                          userenv( ' LANG '),
                                          userenv( ' LANG '),
                                          fnd_global. user_id,
                                          l_content_code)
      -- todo 3 create interface & map
     bne_integrator_utils.create_api_interface_and_map(p_application_id       => p_application_id,
                                                      p_object_code          => p_object_code,
                                                      p_integrator_code      => l_integrator_code,
                                                      p_api_package_name     => p_package_name,
                                                      p_api_procedure_name   => p_procedure_name,
                                                      p_interface_user_name  => p_integrator_name,
                                                      p_content_code         => l_content_code,
                                                      p_view_name            =>  '',
                                                      p_param_list_name      => p_object_code 
                                                                                ' LIST ',
                                                      p_api_type             =>  ' PROCEDURE ',
                                                      p_api_return_type      =>  '',
                                                      p_upload_type          =>  2-- 1= upload to Table. 2 = Upload to PL/SQL API
                                                      p_language             => userenv( ' LANG '),
                                                      p_source_lang          => userenv( ' LANG '),
                                                      p_user_id              => fnd_global. user_id,
                                                      p_param_list_code      => l_param_list_code,
                                                      p_interface_code       => l_interface_code,
                                                      p_mapping_code         => l_mapping_code)
     -- todo 4 create layout
    bne_integrator_utils.create_default_layout(p_application_id   => p_application_id,
                                               p_object_code      => p_object_code,
                                               p_integrator_code  => l_integrator_code,
                                               p_interface_code   => l_interface_code,
                                               p_user_id          => fnd_global. user_id,
                                               p_force            => FALSE,
                                               p_all_columns      => TRUE,
                                               p_layout_code      => l_layout_code)
     -- todo 5   change default block to  line 
     UPDATE bne_layout_blocks_b
        SET block_id  =  1, sequence_num  =  1
      WHERE layout_code  = l_layout_code
     UPDATE bne_layout_blocks_tl
        SET block_id  =  1
      WHERE layout_code  = l_layout_code
      -- todo 6 create layout column
     FOR i  IN ( SELECT  *
                 FROM bne_interface_cols_tl
                WHERE interface_code  = l_interface_code) LOOP
      bne_layout_cols_pkg.insert_row(l_rowid,
                                     p_application_id,  -- APPLICATION_ID
                                     l_layout_code,  -- LAYOUT_CODE
                                      1-- BLOCK_ID
                                     (i.sequence_num  *  10),  -- SEQUENCE_NUM
                                      1-- OBJECT_VERSION_NUMBER
                                     p_application_id,  -- INTERFACE_APP_ID
                                     l_interface_code,  -- INTERFACE_CODE
                                     i.sequence_num,  -- INTERFACE_SEQ_NUM
                                      NULL-- STYLE_CLASS
                                      NULL-- HINT_STYLE
                                      NULL-- HINT_STYLE_CLASS
                                      NULL-- PROMPT_STYLE
                                      NULL-- PROMPT_STYLE_CLASS
                                      NULL-- DEFAULT_TYPE
                                      NULL-- DEFAULT_VALUE
                                      NULL-- STYLE
                                     SYSDATE,  -- CREATION_DATE
                                     fnd_global. user_id-- CREATED_BY
                                     SYSDATE,  -- LAST_UPDATE_DATE
                                     fnd_global. user_id-- LAST_UPDATED_BY
                                     fnd_global. user_id-- LAST_UPDATE_LOGIN
                                      NULL-- DISPLAY_WIDTH
                                      ' N '  -- READ_ONLY_FLAG
                                     )
     END LOOP
     -- todo 7 create map line .I think there is a bug at: BNE_CONTENT_UTILS.CREATE_CONTENT_TO_API_MAP. because they cannot create the map line.
    create_map_line(p_application_id  => p_application_id,
                    p_interface_code  => l_interface_code,
                    p_content_code    => l_content_code,
                    p_mapping_code    => l_mapping_code)
    dbms_output.put_line( ' l_integrator_code: '  l_integrator_code)
    dbms_output.put_line( ' l_param_list_code '  l_param_list_code)
    dbms_output.put_line( ' l_interface_code: '  l_interface_code)
    dbms_output.put_line( ' l_mapping_code: '  l_mapping_code)
    dbms_output.put_line( ' l_layout_code: '  l_layout_code)
    dbms_output.put_line( ' l_content_code: '  l_content_code)
      --  todo 8 create function
     -- -begin create function 
    l_parameters : = l_parameters  chr( 38)   ' bne:integrator= ' 
                   p_application_id   ' : '  l_integrator_code  chr( 38
                    ' bne:noreview=true '
     dbms_output.put_line( ' parameters: '  l_parameters);
      SELECT fnd_form_functions_s.NEXTVAL  INTO l_function_id  FROM sys.dual;
     fnd_form_functions_pkg.insert_row(x_rowid                     => l_rowid,
                                      x_function_id               => l_function_id,
                                      x_web_host_name             =>  '',
                                      x_web_agent_name            =>  '',
                                      x_web_html_call             =>  ' BneApplicationService ',
                                      x_web_encrypt_parameters    =>  '',
                                      x_web_secured               =>  '',
                                      x_object_id                 =>  '',
                                      x_region_application_id     =>  '',
                                      x_region_code               =>  '',
                                      x_web_icon                  =>  '',
                                      x_function_name             => l_integrator_code,
                                      x_application_id            =>  '',
                                      x_form_id                   =>  '',
                                      x_parameters                => l_parameters,
                                      x_type                      =>  ' SERVLET ',
                                      x_user_function_name        => p_integrator_name,
                                      x_description               =>  '',
                                      x_creation_date             => SYSDATE,
                                      x_created_by                => fnd_global. user_id,
                                      x_last_update_date          => SYSDATE,
                                      x_last_updated_by           => fnd_global. user_id,
                                      x_last_update_login         => fnd_global.login_id,
                                      x_maintenance_mode_support  =>  '',
                                      x_context_dependence        =>  '',
                                      x_jrad_ref_path             =>  '');
    dbms_output.put_line( ' function_id: '  l_function_id);
     -- -end create function 
      -- todo 9   add other language 
     /* bne_integrators_pkg.add_language
    bne_interface_cols_pkg.add_language
    bne_content_cols_pkg.add_language
    bne_contents_pkg.add_language
    bne_integrators_pkg.add_language
    bne_layouts_pkg.add_language
    bne_layout_blocks_pkg.add_language
    bne_mappings_pkg.add_language
    bne_mapping_lines_pkg.add_language
*/
      --  todo  10 update col name OPTIONAL
     UPDATE bne_interface_cols_tl
        SET prompt_left  = sky_test_webadi.get_col_name(prompt_left),
       prompt_above  = sky_test_webadi.get_col_name(prompt_above)
      WHERE application_id  = p_application_id
        AND interface_code  = l_interface_code;
    END;
  BEGIN
  create_bne_integrator(p_application_id   =>  200,
                        p_object_code      =>  ' SKY_TEST_WEBADI1 ',
                        p_integrator_name  =>  ' SKY_TEST_WEBADI1 ',
                        p_package_name     =>  ' SKY_TEST_WEBADI ',
                        p_procedure_name   =>  ' CREATE_TEST ');
END;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值