解决EBS标准导出功能无法导出主从关系数据的方法

转自 http://blog.csdn.net/leeyon4151/article/details/6712219 
以下是关于解决EBS标准导出功能无法导出主从关系数据的方法。

 

解决思路:

1.  在form上增加一个导出按钮,或者在工具栏注册一个菜单项。

2.  用制作一个报表,或者模仿系统标准的导出功能。然后用上面的按钮或者菜单项直接调用。

 

这里主要介绍模仿系统标准导出功能。

 

步骤:

       1.  直接修改form级trigger EXPORT,把默认的 app_standard.event('EXPORT')注释掉。把下面的代码复制进去。

        

  1. /*导出主从结构的COST GROUP 数据。*/  
  2. DECLARE  
  3.   --以上五个变量照搬即可  
  4.   URL               VARCHAR2(2000);  
  5.   DB_FILE           NUMBER;  
  6.   WEB_SERVER_PREFIX VARCHAR2(255);  
  7.   RES               BOOLEAN;  
  8.   MIME_TYPE         VARCHAR2(255);  
  9.    
  10.   L_ORGANZIATION_ID NUMBER;  
  11.   --定义一个包含主从关系数据的CURSOR  
  12.   CURSOR CSR(V_ORGANIZATION_ID IN NUMBER) IS  
  13.     SELECT CST.COST_GROUP_CODE,  
  14.            CST.COST_GROUP_DESCRIPTION,  
  15.            CST.COST_GROUP_DISABLE_DATE,  
  16.            CAP.CAPABILITY,  
  17.            EQP.EQP_CAP_DESC DESCRIPTION,  
  18.            CAP.ACTIVE  
  19.       FROM CUX2_CST_COST_GROUP_ALL      CST,  
  20.            CUX2_CST_COST_GROUP_EQPS_ALL CAP,  
  21.            CUX2_BOM_EQP_CAP_TYPE        EQP  
  22.      WHERE CAP.COST_GROUP_ID(+) = CST.COST_GROUP_ID  
  23.        AND EQP.EQP_CAP_CODE(+) = CAP.CAPABILITY  
  24.        AND EQP.ORGANIZATION_ID(+) = CAP.ORGANIZATION_ID  
  25.        AND CAP.ORGANIZATION_ID(+) = CST.ORGANIZATION_ID  
  26.        AND CST.ORGANIZATION_ID = V_ORGANIZATION_ID  
  27.      ORDER BY CST.ORGANIZATION_ID, CST.COST_GROUP_CODE, CAP.CAPABILITY;  
  28. BEGIN  
  29.   --获取Organzition_id  
  30.   L_ORGANZIATION_ID := FND_PROFILE.VALUE('MFG_ORGANIZATION_ID');  
  31.   --更改鼠标式样:漏斗鼠标(忙状态)  
  32.   SET_APPLICATION_PROPERTY(CURSOR_STYLE, 'BUSY');  
  33.   --显示进度条窗口,并设置进度为0  
  34.   APP_WINDOW.PROGRESS(0);  
  35.   --创建数据包,并设置文件头类型。  
  36.   DB_FILE := FND_GFM.FILE_CREATE(CONTENT_TYPE => 'text/html',  
  37.                                  PROGRAM_NAME => 'export');  
  38.   /*系统标准的导出功能导出的只能是当前聚焦的BLOCK中已显示item数据。  
  39.     当客制的FORM含有主从关系的两个BLOCK则系统标准的导出则不能导出主从数据。  
  40.     研究系统标准导出后的文本格式如下:  
  41.     Cost Group Code     Cost Group Description    Cost Group Disable Date  
  42.     test-1              a test cost group code    2011-09-09  
  43.     test-2              another codst group code  2011-10-10  
  44.     .......  
  45.     ...  
  46.     ..  
  47.      
  48.     第一行为标题头,中间较长距离的空白为 tab 符,也就是  chr(9),  
  49.     接下来的数据行,数据列之间的分隔符也是 tab.  
  50.     摸清规律,模仿导出数据就很容易了。    
  51.   */  
  52.   --输出题头行    注:chr(9) 为  tab键  
  53.   FND_GFM.FILE_WRITE_LINE(DB_FILE,  
  54.                           'Cost Group Code' || CHR(9) ||  
  55.                           'Cost Group Description' || CHR(9) ||  
  56.                           'Cost Group Disable Date' || CHR(9) ||  
  57.                           'Capability' || CHR(9) || 'Description' || CHR(9) ||  
  58.                           'Active');  
  59.   --循环数据行  
  60.   FOR R IN CSR(L_ORGANZIATION_ID) LOOP  
  61.     FND_GFM.FILE_WRITE_LINE(DB_FILE,  
  62.                             R.COST_GROUP_CODE || CHR(9) ||  
  63.                             R.COST_GROUP_DESCRIPTION || CHR(9) ||  
  64.                             TO_CHAR(R.COST_GROUP_DISABLE_DATE,  
  65.                                     'YYYY-MM-DD HH24:MI:SS') || CHR(9) ||  
  66.                             R.CAPABILITY || CHR(9) || R.DESCRIPTION ||  
  67.                             CHR(9) || R.ACTIVE);  
  68.   END LOOP;  
  69.   --关闭数据包  
  70.   DB_FILE := FND_GFM.FILE_CLOSE(DB_FILE);  
  71.   --将数据包提交给客户端  
  72.   URL := FND_GFM.CONSTRUCT_DOWNLOAD_URL(WEB_SERVER_PREFIX, DB_FILE, TRUE);  
  73.   --DBMS_OUTPUT.PUT_LINE(URL);  
  74.   --打开URL地址下载  
  75.   FND_UTILITIES.OPEN_URL(URL);  
  76.   --更改鼠标式样:默认指针(常规状态)  
  77.   SET_APPLICATION_PROPERTY(CURSOR_STYLE, 'DEFAULT');  
  78.   APP_WINDOW.PROGRESS(1); --显示进度条窗口,并设置进度为1(100%)  
  79. END;  

 

效果:

 




至于这种办法与 跑请求的 方法相比。个人感觉这种办法比较快。只是个人看法。。。。。

OK ,就这样

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/25103190/viewspace-733768/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/25103190/viewspace-733768/

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您可以使用 AWS Management Console 或 AWS CLI 导出 Amazon Elastic Block Store (EBS) 卷的数据,并将其保存为 Excel 文件(.xlsx 格式)。这需要您安装 AWS Command Line Interface (CLI) 并创建一个 EC2 实例来运导出命令。 以下是导出 EBS数据的一些步骤: 1. 创建一个 EC2 实例并连接到该实例。 2. 安装 AWS CLI 并配置您的凭证。 3. 运以下命令导出 EBS数据并将其保存为 Excel 文件: `aws ec2 create-instance-export-task --instance-id <instance_id> --target-environment vmware --export-to-s3-task <S3 bucket and key> --format vmdk` `aws s3 cp s3://<S3 bucket and key>/<export_task_id>.vmdk - | aws ec2 import-snapshot --disk-container "Description=string,Format=vmdk,UserBucket={S3Bucket=<bucket_name>,S3Key=<S3 key>}"` `aws ec2 create-conversion-task --source-region <source_region> --source-disk "<snapshot_id>::<device_name>" --target-format vmdk --target-bucket <target_bucket> --target-prefix <prefix>` `aws s3 cp s3://<target_bucket>/<prefix>/<conversion_task_id>.vmdk - | aws ec2 create-image --name <image_name> --block-device-mappings "[{\"DeviceName\": \"<device_name>\", \"Ebs\":{\"SnapshotId\":\"<snapshot_id>\",\"VolumeSize\":<volume_size>,\"DeleteOnTermination\":true}}]" --virtualization-type hvm --description "<description>"` 4. 使用以下命令将 AMI 导出为 Excel 文件: `aws ec2 describe-images --image-ids <image_id> --query 'Images[*].[Name, BlockDeviceMappings[*].Ebs.VolumeId]' --output text | awk '{print $2}' | xargs -I {} sh -c 'aws ec2 create-snapshot --volume-id {} --description "Snapshot of {}" && echo "Created snapshot of {}"'` `aws ec2 describe-images --image-ids <image_id> --query 'Images[*].[Name, BlockDeviceMappings[*].Ebs.VolumeId]' --output text | awk '{print $2}' | xargs -I {} sh -c 'aws ec2 create-snapshot --volume-id {} --description "Snapshot of {}" && echo "Created snapshot of {}"'` `aws s3 cp s3://<S3 bucket>/<S3 key> - | sed 's/\t/,/g' > <output_file>.xlsx` 请注意,这只是一些基本步骤,您需要根据您的实际情况进一些更改和调整。此外,这些命令可能会产生一些费用。请确保您已经了解了这些费用,并且您已经在 AWS 控制台上设置了适当的预算和限制。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值