- 浏览: 326908 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (169)
- ORACLE EBS FORM开发 (39)
- ORACLE EBS业务 (18)
- ORACLE DB (13)
- ACCOUNTING (0)
- 休闲娱乐 (5)
- 开发自己 (1)
- OAF开发 (15)
- LINUX (2)
- ORACLE EBS文档 (1)
- 疑难杂症 (3)
- WEB ADI (2)
- 报表开发 (2)
- EBS有用SQL (8)
- ORACLE EBS开发 (5)
- ORACLE EBS DBA (15)
- EBS日常维护 (24)
- Oracle EBS workflow (2)
- Oracle EBS 个性化 (2)
- EBS常见接口表应用 (10)
- EBS标准API应用 (3)
- Oracle EBS 数据迁移 (2)
- Oracle EBS杂项技术荟萃 (1)
- EBS之事半功倍 (1)
- ORACLE EBS ALERT (1)
- OCP之路 (4)
最新评论
-
594597634:
楼主没有给解决方案啊
!我急求如何解决啊
亲历:JBO-25058 -
sjmei:
嗯,不错,学习了
PL/SQL NO_DATA_FOUND、SQL%NOTFOUND、SQL%ROWCOUNT -
maojieming:
做公交车,应该是“关门打X”
北京公交车一族必备绝技 -
hollysun:
现在功夫都练得炉火纯青了,独孤九剑~
北京公交车一族必备绝技 -
xyh:
还有一招:锁喉功,掐死你,捏死你
北京公交车一族必备绝技
主要功能:
1. 用户利用sql 导出具备固定格式的txt file(包含用户名,新增标志,职责,应用,起始时间,终止时间)
2.用户在webadi向导中导入txt file,自动生成excel 模板进行上传.
3.根据模块中的exists flag 来判断职责为新增或失效.
后台package:
----Function&Procedure declare begin-------------------------
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);
PROCEDURE write_log(p_message_type IN NUMBER, p_message_text IN VARCHAR2);
----Function&Procedure declare end---------------------------
END glc_mass_assign_resp_pkg;
/
CREATE OR REPLACE PACKAGE BODY glc_mass_assign_resp_pkg IS
----Function&Procedure body begin----------------------------
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;
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;
WEBADI设置过程(copy自我的Design)
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.
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
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
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.
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.
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.
1.5. BNE_MASS ASSIGN RESPONSIBILITY (New Function)
Create function for automatic download integrator.
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.
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.:
1.1. GLC_MASS_ASSIGN_RESP_INTEGRATION.ldt
1.1.1. New/Reuse/Copy from
New
1.1.2. Layout
N/A
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"
1.2. GLC_MASS_ASSIGN_RESP_LAYOUT.ldt
1.2.1. New/Reuse/Copy from
New
1.2.2. Layout
N/A
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"
1.3. GLC_MASS_ASSIGN_RESP_CONTENT.ldt
1.3.1. New/Reuse/Copy from
New
1.3.2. Layout
N/A
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.4. GLC_MASS_ASSIGN_RESP_MAPPING.ldt
1.4.1. New/Reuse/Copy from
New
1.4.2. Layout
font-s
发表评论
相关推荐
- **WEBADI开发权限**:针对开发者的权限,允许进行Web ADI的定制开发工作。 #### 配置文件详解 - **配置文件**:用于指定Web ADI的配置信息,包括数据库连接、安全设置等。 #### Oracle ADI 客制化开发 - **...
Oracle Web应用导入器返回错误信息的定义指南 本文档旨在介绍如何定义一个...在阅读和应用这些指南时,开发者应确保对相关Oracle EBS和WebADI的应用架构有充分理解,以保证最终开发的集成器具有良好的性能和可维护性。
- **ADSP(Analog Devices Digital Signal Processor)**:来自ADI公司的DSP处理器,如SHARC系列。 3. **编程语言和开发环境**: - **C/C++**:常用的语言,用于编写高效、可移植的DSP代码。 - **汇编语言**:...
5. **ASP.NET环境**:ASP.NET是微软提供的一套用于构建Web应用程序的开发框架,它包含了一系列用于开发动态网站、Web服务和Web应用程序的工具和技术。在这个项目中,RSA算法可能被嵌入到ASP.NET页面或Web服务中,以...
开发中推荐使用的IDE开发组合为IDE,eclipse,ADI来开发。** - **知识点**: 这里可能是指使用IDE(Integrated Development Environment)进行开发,推荐的IDE包括Eclipse和Android Studio。不过,“ADI”可能是指ADT...
本文将深入探讨这两种加密方法及其在前端JavaScript、后端Java以及Android和Web开发中的应用。 **一、RSA加密算法** RSA(Rivest-Shamir-Adleman)是一种非对称加密算法,由Ron Rivest、Adi Shamir和Leonard ...
本文主要介绍了Java实现的RSA加密解密算法,结合实例形式分析了Java RSA加密解密算法的相关实现技巧。 知识点1:RSA加密解密算法简介 RSA加密解密算法是一种非对称加密算法,由Ron Rivest、Adi Shamir和Leonard ...
总的来说,“Python071基于RSA加密算法软件的研究设计”项目是一个综合性的学习平台,涵盖了Python编程、加密算法、Web开发和数据库管理等多个方面,为学习者提供了一个全面了解和实践信息安全的途径。通过深入研究...
由Ron Rivest、Adi Shamir和Leonard Adleman在1977年提出,因此得名RSA。这种算法基于大数因子分解的数学难题,为互联网通信提供了安全的数据传输方式。 在JavaScript和Java中实现RSA加解密,主要是为了在网络环境...
ASP(Active Server Pages)是一种微软开发的服务器端脚本环境,用于创建动态网页或Web应用程序。在本项目中,"ASP基于RSA的数字签名的设计与实现"是一个利用ASP技术结合RSA加密算法实现数字签名功能的实例。这个...
在Web开发中,RSA加密常用于保护敏感信息,例如HTTPS通信中的预共享密钥交换,或者在前端加密用户密码以保护其在传输过程中不被截获。通过`jsencrypt.min.js`这样的库,开发者可以轻松地将这些安全措施集成到...
JavaScript加密库,特别是RSA加密,是Web开发中一个重要的安全技术。RSA是一种非对称加密算法,由Ron Rivest、Adi Shamir和Leonard Adleman在1977年提出,因其三位发明者的名字首字母命名。这种加密方法在互联网上...
SSM(Spring、SpringMVC、MyBatis)是一个广泛使用的Java Web开发框架,它结合了Spring的核心特性、Spring MVC的Web层支持以及MyBatis的持久层处理。在这个"SSMRSA前后台加密解密案例"中,我们探讨的是如何在SSM框架...
这段代码首先创建一个`DocumentBuilder`实例,然后使用它解析`adi_.xml`文件。解析完成后,我们可以遍历`Document`对象来访问XML文件的各个部分。 此外,SAX(Simple API for XML)是另一种解析XML的方法,它不需要...
标题"RSA-encryption-between-CSharp-and-java.rar_between_rsa_rsa csharp"表明这个压缩包文件包含了关于RSA加密算法在C#和Java之间进行互操作的实例和资料,重点在于如何在两个不同的开发环境中实现数据的安全传输...
在这个压缩包`jsencrypt-master`中,我们很可能是得到了这个库的源码或一个完整的开发资源包。 RSA是一种广泛使用的非对称加密算法,由Ron Rivest、Adi Shamir和Leonard Adleman在1977年提出。它的核心原理是基于两...
Java RSA 加密/解密/签名工具类是Java开发中常用的一种安全技术实现,主要用于数据的保护和身份验证。RSA是一种非对称加密算法,基于大整数因子分解的困难性,提供了加密、解密以及数字签名的功能。下面将详细介绍...
Adi的代码库很可能包含了这些现代JavaScript语法的实例,帮助开发者跟上最新的技术趋势。 最后,考虑到JavaScript在服务器端的使用(例如Node.js),"AdiCodeGrounds-master"可能还包括了服务器端编程的示例,如...