zoukankan      html  css  js  c++  java
  • EBS获取附件URL

    http://wenku.baidu.com/link?url=MnYX269RBqW9ZRh-4famwduhYq9As0-vsIyVPA7aqv64cdxxjZEOaEE1_KZ9SGjY9qCxYIb-Fuh12pN05eZDBifBvwv5tReqjNMfZyMhW3W

    TYPE CURTYPE IS REF CURSOR;

     

      TYPE C_ATTACHED_RECORD IS RECORD(

        ROW_NUM          NUMBER,

        PK1_VALUE        NUMBER,

        USER_ENTITY_NAME VARCHAR2(1000),

        TITLE            VARCHAR2(1000),

        FILE_NAME        VARCHAR2(1000),

        DATATYPE_NAME    VARCHAR2(1000),

        FILE_DATA        BLOB,

        FILE_ID          NUMBER);

    ----------------------------------------------------------------------------------

      --功能名称:

      --          GET_ATTACHED_HTML

      --功能说明:

      --          获取附件列表html代码

      --参数说明:

      --         PITEM_TYPE 工作流代码

      --         P_ITEM_KEY 审批关键字

      --         P_FUNCTION_NAME 附件功能名称

      --         P_ENTITY_NAME 文档实体标识

      --         P_TABLE_NAME 文档实体表

      --         p_BLOCK_NAME 附件功能的块名

      --         返回附件列表的HTML代码

      --版本信息:

      --          1.0     Initial Creation

    ----------------------------------------------------------------------------------

      FUNCTION GET_ATTACHED_HTML(PITEM_TYPE      IN VARCHAR2,

                                 PITEM_KEY       IN VARCHAR2,

                                 P_FUNCTION_NAME IN VARCHAR2,

                                 P_ENTITY_NAME   IN VARCHAR2,

                                 P_TABLE_NAME    IN VARCHAR2,

                                 p_BLOCK_NAME    IN VARCHAR2) RETURN VARCHAR2;

      ----------------------------------------------------------------------------------

      --功能名称:

      --          GET_OUTPUT_URL

      --功能说明:

      --          获取附件下载链接地址

      --参数说明:

      --         P_PK1_VALUE 附件的主关键字值

      --         P_FILE_ID 附件文件ID

      --         P_ENTITY_NAME 文档实体标识

      --         返回指定附件文件的下载链接地址

      --版本信息:

      --          1.0     Initial Creation

      ----------------------------------------------------------------------------------

      FUNCTION GET_OUTPUT_URL(P_PK1_VALUE   IN NUMBER,

                              P_FILE_ID     IN NUMBER,

                              P_ENTITY_NAME IN VARCHAR2) RETURN VARCHAR2;

    ----------------------------------------------------------------------------------

      --功能名称:

      --          GET_ATTACHED_HTML

      --功能说明:

      --          获取附件列表html代码

      --参数说明:

      --         PITEM_TYPE 工作流代码

      --         P_ITEM_KEY 审批关键字

      --         P_FUNCTION_NAME 附件功能名称

      --         P_ENTITY_NAME 文档实体标识

      --         P_TABLE_NAME 文档实体表

      --         p_BLOCK_NAME 附件功能的块名

      --         返回附件列表的HTML代码

      --版本信息:

      --          1.0     Initial Creation

      ----------------------------------------------------------------------------------

    FUNCTION GET_ATTACHED_HTML(PITEM_TYPE      IN VARCHAR2,

                                 PITEM_KEY       IN VARCHAR2,

                                 P_FUNCTION_NAME IN VARCHAR2,

                                 P_ENTITY_NAME   IN VARCHAR2,

                                 P_TABLE_NAME    IN VARCHAR2,

                                 P_BLOCK_NAME    IN VARCHAR2) RETURN VARCHAR2 IS

        C_ATTACHED          CURTYPE;

        V_DOCUMENT_ATTACHED VARCHAR2(32000);

        VATTACHEDINFO       C_ATTACHED_RECORD;

        V_COUNT             NUMBER := 1;

        V_PK1_VALUE         NUMBER;

     

        VPK1_FILED              VARCHAR2(61);

        VPK2_FILED              VARCHAR2(61);

        VPK3_FILED              VARCHAR2(61);

        VPK4_FILED              VARCHAR2(61);

        VPK5_FILED              VARCHAR2(61);

        VPK1                    VARCHAR2(61);

        VPK2                    VARCHAR2(61);

        VPK3                    VARCHAR2(61);

        VPK4                    VARCHAR2(61);

        VPK5                    VARCHAR2(61);

        VURL                    VARCHAR2(500);

        VCONDITION_FIELD        VARCHAR2(100);

        VCONDITION_OPERATOR     VARCHAR2(10);

        VCONDITION_VALUE1       VARCHAR2(100);

        VCONDITION_VALUE2       VARCHAR2(100);

        VQUERY_PERMISSION_TYPE  VARCHAR2(10);

        VINSERT_PERMISSION_TYPE VARCHAR2(10);

        VUPDATE_PERMISSION_TYPE VARCHAR2(10);

        VDELETE_PERMISSION_TYPE VARCHAR2(10);

     

        V_SQL VARCHAR2(32000);

        C_SQL VARCHAR2(32000);

      BEGIN

        BEGIN

          SELECT ABE.PK1_FIELD,

                 ABE.PK2_FIELD,

                 ABE.PK3_FIELD,

                 ABE.PK4_FIELD,

                 ABE.PK5_FIELD,

                 ABE.CONDITION_FIELD,

                 ABE.CONDITION_OPERATOR,

                 ABE.CONDITION_VALUE1,

                 ABE.CONDITION_VALUE2,

                 ABE.QUERY_PERMISSION_TYPE,

                 ABE.INSERT_PERMISSION_TYPE,

                 ABE.UPDATE_PERMISSION_TYPE,

                 ABE.DELETE_PERMISSION_TYPE

            INTO VPK1_FILED,

                 VPK2_FILED,

                 VPK3_FILED,

                 VPK4_FILED,

                 VPK5_FILED,

                 VCONDITION_FIELD,

                 VCONDITION_OPERATOR,

                 VCONDITION_VALUE1,

                 VCONDITION_VALUE2,

                 VQUERY_PERMISSION_TYPE,

                 VINSERT_PERMISSION_TYPE,

                 VUPDATE_PERMISSION_TYPE,

                 VDELETE_PERMISSION_TYPE

            FROM FND_ATTACHMENT_BLK_ENTITIES ABE,

                 FND_ATTACHMENT_BLOCKS       AB,

                 FND_ATTACHMENT_FUNCTIONS    AF

           WHERE ABE.ATTACHMENT_BLK_ID = AB.ATTACHMENT_BLK_ID

             AND AB.ATTACHMENT_FUNCTION_ID = AF.ATTACHMENT_FUNCTION_ID

             AND AF.FUNCTION_NAME = P_FUNCTION_NAME

             AND AF.FUNCTION_TYPE = 'F'

             AND ABE.DATA_OBJECT_CODE = P_ENTITY_NAME

             AND AB.BLOCK_NAME = P_BLOCK_NAME

             AND ROWNUM = 1;

        EXCEPTION

          WHEN NO_DATA_FOUND THEN

            SELECT ABE.PK1_FIELD,

                   ABE.PK2_FIELD,

                   ABE.PK3_FIELD,

                   ABE.PK4_FIELD,

                   ABE.PK5_FIELD,

                   ABE.CONDITION_FIELD,

                   ABE.CONDITION_OPERATOR,

                   ABE.CONDITION_VALUE1,

                   ABE.CONDITION_VALUE2,

                   ABE.QUERY_PERMISSION_TYPE,

                   ABE.INSERT_PERMISSION_TYPE,

                   ABE.UPDATE_PERMISSION_TYPE,

                   ABE.DELETE_PERMISSION_TYPE

              INTO VPK1_FILED,

                   VPK2_FILED,

                   VPK3_FILED,

                   VPK4_FILED,

                   VPK5_FILED,

                   VCONDITION_FIELD,

                   VCONDITION_OPERATOR,

                   VCONDITION_VALUE1,

                   VCONDITION_VALUE2,

                   VQUERY_PERMISSION_TYPE,

                   VINSERT_PERMISSION_TYPE,

                   VUPDATE_PERMISSION_TYPE,

                   VDELETE_PERMISSION_TYPE

              FROM FND_ATTACHMENT_BLK_ENTITIES ABE,

                   FND_ATTACHMENT_BLOCKS       AB,

                   FND_ATTACHMENT_FUNCTIONS    AF

             WHERE ABE.ATTACHMENT_BLK_ID = AB.ATTACHMENT_BLK_ID

               AND AB.ATTACHMENT_FUNCTION_ID = AF.ATTACHMENT_FUNCTION_ID

               AND AF.FUNCTION_NAME = P_FUNCTION_NAME

               AND AF.FUNCTION_TYPE = 'O'

               AND ABE.DATA_OBJECT_CODE = P_ENTITY_NAME

               AND AB.BLOCK_NAME = P_BLOCK_NAME

               AND ROWNUM = 1;

        END;

     

        V_SQL := 'SELECT ' || SUBSTR(VPK1_FILED,

                                     INSTR(VPK1_FILED, '.', 1) + 1,

                                     LENGTH(VPK1_FILED)) || ' FROM ' ||

                 P_TABLE_NAME || ' WHERE ITEM_KEY = ''' || PITEM_KEY || '''' ||

                 ' AND ROWNUM = 1';

     

        EXECUTE IMMEDIATE V_SQL

          INTO V_PK1_VALUE;

     

        V_DOCUMENT_ATTACHED := '<table  width=100% border="0" cellspacing="0" cellpadding="0" >

          <tr><td><table cellpadding="0" cellspacing="0" border="0" width="100%" class="x74" style="background-image:url(/OA_HTML/cabo/images/swan/headingBarBg.gif);">

          <tr>

          <td width="100%"><h2 class="x75">附件列表</h2></td></tr></table></td></tr>

          <tr><td><table width="100%" class="x1h" cellpadding="1" cellspacing="0" summary="Action History" border="1" >

          <tr>

          <th class="x1r x4j"  scope="col" width="2%" align="LEFT" valign="baseline" ><span class="x24">序号</span></th>

          <th class="x1r x4j"  scope="col" width="5%" align="LEFT" valign="baseline" ><span class="x24">实体名</span></th>

          <th class="x1r x4j"  scope="col" width="10%" align="LEFT" valign="baseline" ><span class="x24">标题</span></th>

          <th class="x1r x4j"  scope="col" width="15%" align="LEFT" valign="baseline" ><span class="x24">文件名</span></th>

          </tr>';

        C_SQL := 'SELECT ROWNUM ROW_NUM,

                PK1_VALUE,

                USER_ENTITY_NAME,

                TITLE,

                FILE_NAME,

                DATATYPE_NAME,

                FILE_DATA,

                FILE_ID

           FROM (SELECT FAD.PK1_VALUE,

                        FAD.USER_ENTITY_NAME,

                        FAD.TITLE,

                        FAD.FILE_NAME,

                        FAD.DATATYPE_NAME,

                        FL.FILE_DATA,

                        FL.FILE_ID

                   FROM FND_ATTACHED_DOCS_FORM_VL FAD, FND_LOBS FL

                  WHERE FAD.MEDIA_ID = FL.FILE_ID

                    AND FAD.FUNCTION_NAME = ''' ||

                               P_FUNCTION_NAME ||''''||

                    ' AND FAD.PK1_VALUE IN ' ||

                               '(SELECT T.' ||

                               SUBSTR(VPK1_FILED,

                                      INSTR(VPK1_FILED, '.', 1) + 1,

                                      LENGTH(VPK1_FILED)) ||

                           ' FROM ' || P_TABLE_NAME || 

                          ' T WHERE T.ITEM_KEY = ''' ||

                               PITEM_KEY || '''' || ')

                    AND FAD.ENTITY_NAME = '''||P_ENTITY_NAME||''''

                  ||' ORDER BY FAD.USER_ENTITY_NAME, FAD.SEQ_NUM)';

        OPEN C_ATTACHED FOR C_SQL;

        FETCH C_ATTACHED

          INTO VATTACHEDINFO;

        WHILE C_ATTACHED%FOUND LOOP

          V_DOCUMENT_ATTACHED := V_DOCUMENT_ATTACHED ||

                                 '<tr>

            <td align="LEFT" valign="baseline"  class="x1l x4x">' ||

                                 V_COUNT ||

                                 '</td>

            <td align="LEFT" valign="baseline"  class="x1l x4x">' ||

                                 VATTACHEDINFO.USER_ENTITY_NAME ||

                                 '</td>

            <td align="LEFT" valign="baseline"  class="x1l x4x">' ||

                                 VATTACHEDINFO.TITLE || '</td>

            <td align="LEFT" valign="baseline"  class="x1l x4x">

                <a href="' ||

                                 GET_OUTPUT_URL(V_PK1_VALUE,

                                                VATTACHEDINFO.FILE_ID,

                                                P_ENTITY_NAME) || '">' ||

                                 VATTACHEDINFO.FILE_NAME || '</a></td>

            </tr>';

       

          V_COUNT := V_COUNT + 1;

          FETCH C_ATTACHED

            INTO VATTACHEDINFO;

        END LOOP;

        V_DOCUMENT_ATTACHED := V_DOCUMENT_ATTACHED ||

                               '</table></td></tr></table>';

     

        RETURN V_DOCUMENT_ATTACHED;

      EXCEPTION

        WHEN OTHERS THEN

          RETURN NULL;

      END GET_ATTACHED_HTML;

    ----------------------------------------------------------------------------------

      --功能名称:

      --          GET_OUTPUT_URL

      --功能说明:

      --          获取附件下载链接地址

      --参数说明:

      --         P_PK1_VALUE 附件的主关键字值

      --         P_FILE_ID 附件文件ID

      --         P_ENTITY_NAME 文档实体标识

      --         返回指定附件文件的下载链接地址

      --版本信息:

      --          1.0     Initial Creation

      ----------------------------------------------------------------------------------

    /*FUNCTION GET_OUTPUT_URL(P_PK1_VALUE IN NUMBER, P_FILE_ID IN NUMBER,P_ENTITY_NAME IN VARCHAR2)

        RETURN VARCHAR2 IS

        P_ACCESS_ID  NUMBER;

        V_OUTPUT_URL VARCHAR2(10000);

      BEGIN

        V_OUTPUT_URL := '';

     

        SELECT ACCESS_ID

          INTO P_ACCESS_ID

          FROM FND_LOB_ACCESS

         WHERE FILE_ID = P_FILE_ID;

     

        V_OUTPUT_URL := RPT_REG_PKG.G_XML_PATH*是一个配置文件值可以自己定义修改,值如:http://db1.dtpower.zszy.com:8001* ||

                        'OA_HTML/fndgfm.jsp?mode=download_blob&fid=' ||

                        P_FILE_ID || '&accessid=' || P_ACCESS_ID;

        RETURN V_OUTPUT_URL;

      EXCEPTION

        WHEN NO_DATA_FOUND THEN

          INSERT INTO FND_LOB_ACCESS

            (ACCESS_ID, FILE_ID, TIMESTAMP)

            SELECT TO_NUMBER(TO_CHAR(FND_LOBS_S.NEXTVAL) ||

                             TO_CHAR(SYSDATE, 'SSSSS')),

                   D.MEDIA_ID,

                   SYSDATE + 1

              FROM FND_ATTACHED_DOCUMENTS B,

                   FND_DOCUMENTS_TL       C,

                   FND_DOCUMENTS          D

             WHERE B.DOCUMENT_ID = C.DOCUMENT_ID

               AND B.DOCUMENT_ID = D.DOCUMENT_ID

               AND B.PK1_VALUE = P_PK1_VALUE

               AND D.MEDIA_ID = P_FILE_ID

               AND B.ENTITY_NAME = P_ENTITY_NAME

               AND C.LANGUAGE = 'ZHS';

          COMMIT;

          SELECT ACCESS_ID

            INTO P_ACCESS_ID

            FROM FND_LOB_ACCESS

           WHERE FILE_ID = P_FILE_ID;

          V_OUTPUT_URL := RPT_REG_PKG.G_XML_PATH ||

                          'OA_HTML/fndgfm.jsp?mode=download_blob&fid=' ||

                          P_FILE_ID || '&accessid=' || P_ACCESS_ID;

          RETURN V_OUTPUT_URL;

        WHEN OTHERS THEN

          P_ACCESS_ID  := 0;

          V_OUTPUT_URL := '';

          XZTZ_LOG_PKG.INSERT_LOG('附件列表文件下载链接生成异常',

                                 SQLERRM,

                                 'XZ_PO_PUB_PKG.GET_OUTPUT_URL',

                                 30);

          RETURN V_OUTPUT_URL;

      END GET_OUTPUT_URL;*/

    FUNCTION GET_OUTPUT_URL(P_PK1_VALUE   IN NUMBER,

                              P_FILE_ID     IN NUMBER,

                              P_ENTITY_NAME IN VARCHAR2) RETURN VARCHAR2 IS

        P_ACCESS_ID  NUMBER;

        V_OUTPUT_URL VARCHAR2(10000);

      BEGIN

     

        /* V_SQL_STR := 'SELECT d.file_name,d.media_id ,a.access_id,

           fnd_gfm.construct_download_url(fnd_web_config.gfm_agent,d.media_id) URL ' ||

        ' from fnd_attached_documents b,fnd_documents_tl c,fnd_lob_access a,fnd_documents d' ||

        ' where b.document_id=c.document_id and  b.document_id=d.document_id and b.pk1_value=''' ||

        V_PK1_VALUE || '''' ||

        ' and a.file_id=d.media_id and b.entity_name IN (''XZ_PO_EXPENDED'',''XZ_PO_EXPENDED'')

            and C.LANGUAGE=''ZHS'' '; */

        V_OUTPUT_URL := FND_GFM.CONSTRUCT_DOWNLOAD_URL(FND_WEB_CONFIG.GFM_AGENT, /*应用产品 Web 代理配置文件值:http://db1.dtpower.zszy.com:8001/pls/TEST*/

                                                       P_FILE_ID);

        RETURN V_OUTPUT_URL;

      EXCEPTION

        WHEN OTHERS THEN

          P_ACCESS_ID  := 0;

          V_OUTPUT_URL := '';

          XZTZ_LOG_PKG.INSERT_LOG('附件列表文件下载链接生成异常',

                                  SQLERRM,

                                  'XZ_PO_PUB_PKG.GET_OUTPUT_URL',

                                  30);

          RETURN V_OUTPUT_URL;

      END GET_OUTPUT_URL;

     最终效果:

  • 相关阅读:
    论文研读
    论文研读
    2019春 软件工程实践 助教总结
    第十三次作业成绩汇总
    第九次作业成绩汇总
    第十七周助教工作总结
    Docker 学习笔记(四):Bug 日志与其他零散知识
    bash 和 powershell 常用命令集锦
    Kubernetes 学习笔记(二):本地部署一个 kubernetes 集群
    Kubernetes 学习笔记(一):基础概念
  • 原文地址:https://www.cnblogs.com/xiaoL/p/4011437.html
Copyright © 2011-2022 走看看