只要你输入CAPINV,2.用户在webadi向导中程导弹入txt

Yes, 必须的

1.4.1.     New/Reuse/Copy from          

           New

/*
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 VARCHAR2) RETURN 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 VARCHAR2) IS
    CURSOR mapping_cols_c(cp_application_id IN NUMBER, cp_content_code IN VARCHAR2, cp_interface_code IN VARCHAR2) IS
      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, 3) OR
             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 VARCHAR2) IS
    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;

客制化的Integrator
后台表bne_integrators_b中的source 为’C’,

1.2.           GLC_MASS_ASSIGN_RESP_LAYOUT.ldt

若是这几个Profile: BNE Allow No Security
Rule 设成No的话,那项要设,

1.2.2.     Layout

N/A

图片 1

1.5.2.     Final function setup

Add “ One
Mouse Click” parameters on user’s function.

User only
need to click menu and select data file to WEBADI. Then excel template
will be downloaded and data will be in it.

 

Original
statement:

bne:page=BneCreateDoc&bne:viewer=BNE:EXCEL2000&bne:reporting=N&bne:integrator=GLC:GENERAL_2_INTG&bne:layout=GLC:GLC_MASS_ASSIGN_RESP&bne:content=GLC:GENERAL_2A_CNT&bnectl:file=WM_CONTRACTORS_CONVERSION_DATA_19793875.csv&bne:map=GLC:GLC_MASS_ASSIGN_RESP

 须要删除上面卡其色部分(钦点导入的txt
file,不须求,由用户动态采用)

Changed
to:

bne:page=BneCreateDoc&bne:viewer=BNE:EXCEL2000&bne:reporting=N&bne:integrator=GLC:GENERAL_2_INTG&bne:layout=GLC:GLC_MASS_ASSIGN_RESP&bne:content=GLC:GENERAL_2A_CNT
&bne:map=GLC:GLC_MASS_ASSIGN_RESP&bne:noreview=Yes

 

移植脚本:

安装时,需提供下列ldt
文件:

for webadi:

content / integration /
layout / mapping / parameters / security

Download
Script.:

仅用于下载数据的Integrator, 假诺是upload
的,那项万万不能够选

1.4.           GLC_MASS_ASSIGN_RESP_MAPPING.ldt

  1. Integrator Name:

1.1.3.     Functionality

           Upload integration.

        –Download
Integration

           FNDLOAD apps/$APPS_PASSWORD 0 Y
DOWNLOAD
$BNE_TOP/admin/import/bneint.lct           GLC_MASS_ASSIGN_RESP_INTEGRATION.ldt
BNE_INTEGRATORS
INTEGRATOR_ASN=”GLC”           INTEGRATOR_CODE=”GENERAL_2_INTG”

 

 

而是改成C后,你能够直观的在manager职分中来看它的详实的setup,比在后台看有利于一点.

1.3.           GLC_MASS_ASSIGN_RESP_CONTENT.ldt

  1. 创办以下二个Integrator

1.3.1.     New/Reuse/Copy from          

           New

  1. Enabled:

后台package:

  1. Internal Name:

  PROCEDURE
main(p_user_name          IN VARCHAR2,
                 p_existing_flag      IN VARCHAR2,
                 p_responsibility_key IN VARCHAR2,
                 p_application        IN VARCHAR2,
                 p_start_date         IN OUT DATE,
                 p_end_date           IN OUT DATE);

诚如的话大家会用第②种方法,所以这项一般不用选。

1.3.2.     Layout

N/A

因为恶意的oracle会在自定义的对象code前面加东西,
比如这几个integrator code,
如若你输入CAPINV,存到表里后是CAPINV_XINTG,无故多出四个字符。

3.依据模块中的exists flag
来判断职务为新增或失效.

  1. Security Rules:

—-Function&Procedure
declare begin————————-

有二种途径,一种是为那一个Integrator单独建个form,function,然后进入到user
的menu中;

1.5.           BNE_MASS ASSIGN RESPONSIBILITY (New Function)

Create function for automatic download
integrator.

卡宴12 WEBADI那里协助几个security function,
但近年来自小编用的这些本子的ADI只可以选四个,不知是bug照旧其它原因。

1.1.           GLC_MASS_ASSIGN_RESP_INTEGRATION.ldt

20150506 Created By BaoXinjian

1.3.3.     Functionality

           Upload content.

        –Download
Content

           FNDLOAD apps/$APPS_PASSWORD 0 Y
DOWNLOAD
$BNE_TOP/admin/import/bnecont.lct           GLC_MASS_ASSIGN_RESP_CONTENT.ldt
BNE_CONTENTS
CONTENT_ASN=”GLC”           CONTENT_CODE=”GENERAL_2A_CNT”

 

  1. Integrator Parameters:  

1.4.2.     Layout

图片 2② 、锁定总结音信

1.5.1.     Add function in user’s menu and let user download excel template by himself.

Desktop integration->Create
Document->Views: excel2003->Integrator:GLC: Mass Assign Responsibility->Layout:GLC: Mass Assign
Responsibility->Content: Text file->Content:Parameters (refer to screenshot)->Save

 

 

 

Then save all setup

Shortcut
name: GLC: Mass Assign Responsibility

Select “ Save to Shortcut List” and “Save to
Form. Function”

Settings:         all
selected

 

Then save your setup.

Save to Shortcut List: Let us download excel
template quickly in WEBADI.

Save to Form. Function: Let user can download
excel template in their responsibility.

System
administrator->function-> Find: “BNE_ %”

 

You can find a function named “BNE_ ”+
Integration user name.

Function name: BNE_ MASS ASSIGN
RESPONSIBILITY

Also you can change function name and user
name to yours favorite.

Function name: BNE_MASS ASSIGN
RESPONSIBILITY

User function name:@GLC: Mass Assign
Responsibility

 

 

Add this function in user’s menu
.

System
administrator/security/Mass Assign Responsibility

User can download excel template via this
function.

 

图片 3③ 、简单例子

  PROCEDURE
main(p_user_name          IN VARCHAR2,
                 p_existing_flag      IN VARCHAR2,
                 p_responsibility_key IN VARCHAR2,
                 p_application        IN VARCHAR2,
                 p_start_date         IN OUT DATE,
                 p_end_date           IN OUT DATE) IS
 
    lv_user_id NUMBER;
    lv_resp_id NUMBER;
    lv_appl_id NUMBER;
 
    lv_count NUMBER;
  BEGIN
    –Verify data
begin
    –User name
    BEGIN
      SELECT fu.user_id
        INTO lv_user_id
        FROM fnd_user fu
       WHERE fu.user_name = upper(TRIM(p_user_name))
            –added by Tony liu on 22-jan-2010
         AND (fu.end_date IS NULL OR fu.end_date > SYSDATE);
    EXCEPTION
      WHEN no_data_found THEN
        write_log(1, ‘Failure: Incorrect/Disabled User Name !’);
    END;
 
    –Exist flag
    IF upper(TRIM(nvl(p_existing_flag, ‘Y’))) <> ‘Y’ AND
       upper(TRIM(nvl(p_existing_flag, ‘N’))) <> ‘N’ THEN
      write_log(2, ‘Failure: Invalid Existing Flag !’);
    END IF;
 
    –Responsibility key
    BEGIN
      SELECT fr.responsibility_id
        INTO lv_resp_id
        FROM fnd_responsibility fr
       WHERE upper(fr.responsibility_key) =
             upper(TRIM(p_responsibility_key))
            –added by Tony liu on 22-jan-2010
         AND (fr.end_date IS NULL OR fr.end_date > SYSDATE);
    EXCEPTION
      WHEN no_data_found THEN
        write_log(3, ‘Failure: Incorrect/Disabled Responsibility
Key!’);
    END;
 
    BEGIN
      IF p_existing_flag = ‘N’ THEN
        SELECT COUNT(1)
          INTO lv_count
          FROM fnd_user_resp_groups_direct fur,
               fnd_user                    fu,
               fnd_responsibility          fr
         WHERE fu.user_id = fur.user_id
           AND fr.responsibility_id = fur.responsibility_id
           AND fu.user_name = p_user_name
           AND fr.responsibility_key = p_responsibility_key;
        IF lv_count > 0 THEN
          write_log(8, ‘Failure: Responsibility is already exists!’);
        END IF;
      END IF;
    END;
 
    –Application
    BEGIN
      SELECT fat.application_id
        INTO lv_appl_id
        FROM fnd_application_tl fat
       WHERE upper(fat.application_name) =
upper(TRIM(p_application))
         AND fat.LANGUAGE = ‘US’;
    EXCEPTION
      WHEN no_data_found THEN
        write_log(4, ‘Failure: Invalid Application Name!’);
    END;
 
    –Application and Responsibility check
    BEGIN
      SELECT fr.responsibility_id
        INTO lv_resp_id
        FROM fnd_responsibility fr, fnd_application_tl fat
       WHERE upper(fat.application_name) =
upper(TRIM(p_application))
         AND fat.LANGUAGE = ‘US’
         AND fat.application_id = fr.application_id
         AND upper(fr.responsibility_key) =
             upper(TRIM(p_responsibility_key))
            –added by Tony liu on 22-jan-2010
         AND (fr.end_date IS NULL OR fr.end_date > SYSDATE);
    EXCEPTION
      WHEN no_data_found THEN
        write_log(9,
                  ‘Failure: Incorrect combination of Responsibility and
Application’);
    END;
 
    –User&exist flag&responsibility key&application
    IF p_existing_flag = ‘Y’ THEN
      BEGIN
        IF
fnd_user_resp_groups_api.assignment_exists(user_id                      
=> lv_user_id,
                                                     
responsibility_id             => lv_resp_id,
                                                     
responsibility_application_id => lv_appl_id) THEN
          NULL;
        ELSE
          write_log(6,
                    ‘Failure: Incorrect existing flag,Cant find the
responsibility under the user’);
        END IF;
       
      END;
    END IF;
 
    –Date
    IF nvl(p_end_date, to_date(’01-01-3000′,’dd-mm-yyyy’)) <=
nvl(p_start_date, SYSDATE) THEN
      write_log(5, ‘Failure: Start date can not be later than end
date!’);
    END IF;
    –Added by Tony Liu on 22-jan-2010
    IF p_start_date IS NULL THEN
      BEGIN
        SELECT fur.start_date
          INTO p_start_date
          FROM fnd_user_resp_groups_direct fur
         WHERE fur.user_id = lv_user_id
           AND fur.responsibility_id = lv_resp_id
           AND fur.responsibility_application_id = lv_appl_id;
      EXCEPTION
        WHEN no_data_found THEN
          p_start_date := trunc(SYSDATE);
      END;
   
    END IF;
    /*
    IF p_end_date IS NULL THEN
      BEGIN
        SELECT fur.end_date
          INTO p_end_date
          FROM fnd_user_resp_groups_direct fur
         WHERE fur.user_id = lv_user_id
           AND fur.responsibility_id = lv_resp_id
           AND fur.responsibility_application_id = lv_appl_id;
      EXCEPTION
        WHEN no_data_found THEN
          p_end_date := NULL;
      END;
   
    END IF;
    */
 
    –Verify data end
 
    –Responsibility API begin
    –Invalid responsibility
    IF p_existing_flag = ‘Y’ THEN
      BEGIN
       
fnd_user_resp_groups_api.update_assignment(user_id                      
=> lv_user_id,
                                                  
responsibility_id             => lv_resp_id,
                                                  
responsibility_application_id => lv_appl_id,
                                                  
start_date                    => trunc(p_start_date),
                                                  
end_date                      => trunc(p_end_date),
                                                  
description                   => ”);
        COMMIT;
      EXCEPTION
        WHEN OTHERS THEN
          write_log(7,
                    ‘Failure:
API(fnd_user_resp_groups_api.update_assignment) error!’);
      END;
    END IF;
    –Add responsibility
    IF p_existing_flag = ‘N’ THEN
      BEGIN
       
fnd_user_resp_groups_api.upload_assignment(user_id                      
=> lv_user_id,
                                                  
responsibility_id             => lv_resp_id,
                                                  
responsibility_application_id => lv_appl_id,
                                                  
start_date                    => trunc(p_start_date),
                                                  
end_date                      => trunc(p_end_date),
                                                  
description                   => ”);
        COMMIT;
      EXCEPTION
        WHEN OTHERS THEN
          write_log(7,
                    ‘Failure:
API(fnd_user_resp_groups_api.upload_assignment) error!’);
      END;
    END IF;
    –Responsibility API end
 
    –Added by Tony liu on 22-jan-2010
    IF p_existing_flag IS NULL THEN
      –check responsibility
      IF
fnd_user_resp_groups_api.assignment_exists(user_id                      
=> lv_user_id,
                                                   
responsibility_id             => lv_resp_id,
                                                   
responsibility_application_id => lv_appl_id) THEN
     
        BEGIN
         
fnd_user_resp_groups_api.update_assignment(user_id                      
=> lv_user_id,
                                                    
responsibility_id             => lv_resp_id,
                                                    
responsibility_application_id => lv_appl_id,
                                                    
start_date                    => trunc(p_start_date),
                                                    
end_date                      => trunc(p_end_date),
                                                    
description                   => ”);
          COMMIT;
        EXCEPTION
          WHEN OTHERS THEN
            write_log(7,
                      ‘Failure:
API(fnd_user_resp_groups_api.update_assignment) error!’);
        END;
      ELSE
        BEGIN
         
fnd_user_resp_groups_api.upload_assignment(user_id                      
=> lv_user_id,
                                                    
responsibility_id             => lv_resp_id,
                                                    
responsibility_application_id => lv_appl_id,
                                                    
start_date                    => trunc(p_start_date),
                                                    
end_date                      => trunc(p_end_date),
                                                    
description                   => ”);
          COMMIT;
        EXCEPTION
          WHEN OTHERS THEN
            write_log(7,
                      ‘Failure:
API(fnd_user_resp_groups_api.upload_assignment) error!’);
        END;
      END IF;
   
    END IF;
 
  EXCEPTION
    WHEN OTHERS THEN
      write_log(9, SQLCODE || ‘:’ || SQLERRM);
  END main;

 

END
glc_mass_assign_resp_pkg;
/
CREATE OR REPLACE PACKAGE BODY glc_mass_assign_resp_pkg IS

即Integrator
code,那里不宜输入太长的code,建议十三个以内,以保险前边生成其余对象的code不会超长,

重在职能:

9.
那步设置相应的后台表为bne_integrators_b
和 bne_integrators_tl.

  PROCEDURE
write_log(p_message_type IN NUMBER, p_message_text IN VARCHAR2)
IS
    lv_error_code NUMBER;
  BEGIN
 
    lv_error_code := to_number(‘-2000’ ||
to_char(p_message_type));
    –throw out message
    dbms_standard.raise_application_error(lv_error_code,
p_message_text);
  END write_log;
  —-Function&Procedure body end——————————
END glc_mass_assign_resp_pkg;

于是我们得以在manager
职责中期维修改,如若不想令人改,把C 删了;

 
—-Function&Procedure body begin—————————-

同样,假如想修改oracle 标准的Integrator,
可把source 改为C,
那样就能够修改了,但是不提出修改,因为晋升不协理。

1. 用户使用sql 导出全数固定格式的txt
file(包涵用户名,新增标志,职务,应用,开头时间,终止时间)


2.用户在webadi向导中程导弹入txt
file,自动生成excel 模板举办上传.

 

1.1.2.     Layout

N/A

Thanks and Regards

1.4.           GLC: Mass Assign Responsibility (New Mapping)

Desktop integration->Define
Mapping->Integrator:GLC: Mass
Assign Responsibility->Mapping: Define Mapping->
Mapping name : GLC: Mass Assign
ResponsibilityMapping
Key:GLC_MASS_ASSIGN_RESP->Create
Mapping

Number of mapping columns:6 (same with layout
columns)

Select source columns for text file and
target columns for excel template.

Do not enter manually, must select value from
LOV.

 

 

图片 4一、摘要

1.2.1.     Add function in IT&User’s current menu

System
administrator->Application->Menu

User Responsibility:               System
administrator

IT    Responsibility:              Desktop
Integrator

User               Menu:              FND_NAVSEC4.0  (System
administrator/security)

IT                  Menu:              DESKTOP INTEGRATION
MENU

 

参考: 豆瓣文库 –
http://www.docin.com/p-922235111.html

1.2.3.     Functionality

           Upload layout.

        –Download
Layout

           FNDLOAD apps//$APPS_PASSWORD 0 Y
DOWNLOAD
$BNE_TOP/admin/import/bnelay.lct           GLC_MASS_ASSIGN_RESP_LAYOUT.ldt
BNE_LAYOUTS
LAYOUT_ASN=”GLC”           LAYOUT_CODE=”GLC_MASS_ASSIGN_RESP”

 

随便写,如果有naming
standard,要遵守

1.1.           GLC: Mass Assign Responsibility (New Integrator)

           Create WEBADI integrator for
update user responsibility.

Desktop
integration->Create Document->Views: excel2003->Integrator: HR
Integrator Setup->Layout: Integrator Setup->Content:
null->Review->Create Documents->Download
Document

You have to enter some information as
below:

 

Column

Value

Metadata Type

Create

Application Short Name

GLC

Integrator User Name

GLC: Mass Assign Responsibility

View Name

Don’t fill

Form. Name

Don’t fill

API Package Name

GLC_MASS_ASSIGN_RESP_PKG

API Procedure Name

MAIN

Interface User Name

Any name

Interface Parameter list

Any name

API Type

Procedure

API Return Type

Don’t fill

Message

Don’t fill

 

Then upload document.

If there displays a “J” in Message , upload is
complete.

If there displays a “L” in Message, upload is
fail.

 

貌似选客制化专用的application

1.2.2.      Maintain integration and form. function associations

Desktop
integration->Create Document->Views: excel2003->Integrator:
Maintain integration and form. function associations ->Layout: Form.
function associations->Content: Mapping: Default Application short
name: GLC Integrator user name:GLC: Mass Assign Responsibility->Review->Create
Documents->Download Document

Integrator
Application Short Name:              GLC

Integrator
User Name:                                     GLC: Mass Assign
Responsibility

Form.
Function
List:                                          GLC_MASS_ASSIGN_RESP

 

Then upload document.

After this, IT can create layout and mapping
for this integration. User can use this integration to download excel
template.

 

 


WEBADI设置进度(copy自作者的Design)

可选个user
肯定某个function或自已建个新的subfunction,做为security function,

—-Function&Procedure
declare end—————————

此时此刻自家只测了Document
Parameters,另四个不知缘何用的,可恶的oracle也没文书档案.

1.3.           GLC: Mass Assign Responsibility (New Layout)

Create new
integration layout for new integration

Desktop integration->Define
Layout->Integrator:GLC: Mass
Assign Responsibility->Layout: new Layout-> Layout
name : GLC: Mass Assign
ResponsibilityLayout
Key:GLC_MASS_ASSIGN_RESP->Create
layout

Field name:    Come from package input
parameters( WEBADI will deleteprepositive “P_”)

Placement:       Lines

Default
Value: Keep blank (or input some specific content)

Default
Type:   None ( or other type , decided by default value)

 

Then save
Layout.

 

图片 5

1.2.1.     New/Reuse/Copy from          

           New

还有一种便是把规范的Create
Document成效提须求user,而user 能在其中找到这几个Integrator
就必须选上那项。

1.1.1.     New/Reuse/Copy from          

           New

  1. Display in Create Docuement
    Page:

    因为Integrator 要提供给user
    使用以来,

1.2.           GLC_MASS_ASSIGN_RESP (New Function)

Create new
function in EBS suite

System
administrator->Application->Function

Function
name:          GLC_MASS_ASSIGN_RESPONSIBILITY

Function type:            Subfunction

 

可是假诺是自已建的function的话,须求其余参与user
的menu中,不然user 不恐怕使用那个Integrator。

  PROCEDURE
write_log(p_message_type IN NUMBER, p_message_text IN
VARCHAR2);

那是创立ADI的率先步

 

  1. Reporting Only:
  1. Application:  

相关文章