Friday, September 8, 2017

API to Create Form Function (FND_FORM_FUNCTIONS_PKG.INSERT_ROW)

DECLARE
   l_new_menu_id       NUMBER;
   l_last_menu_id      NUMBER;
   l_row_id            VARCHAR2 (100);
   l_descr             VARCHAR2 (400);
   l_flag_exist_menu   NUMBER := 0;
   x_function_id       NUMBER;
   x_row_id            ROWID;
   x_form_id           NUMBER;
   lc_status           VARCHAR2 (1);

   CURSOR C1
   IS
      SELECT   *
        FROM   XX_FND_FUNCTIONS
       WHERE   FUNCTION_NAME NOT IN
                     (SELECT   FUNCTION_NAME FROM FND_FORM_FUNCTIONS);
BEGIN
   FOR CREC IN C1
   LOOP
      lc_status := 'Y';

      BEGIN
         SELECT   fnd_form_functions_s.NEXTVAL INTO x_function_id FROM sys.DUAL;
      EXCEPTION
         WHEN OTHERS
         THEN
            DBMS_OUTPUT.put_line ('failed to fnd_form_functions_s');
            lc_status := 'E';
      END;

      IF CREC.form_id IS NOT NULL
      THEN
         BEGIN
            SELECT   form_id
              INTO   x_form_id
              FROM   fnd_form
             WHERE   form_id = CREC.form_id;
         EXCEPTION
            WHEN OTHERS
            THEN
               DBMS_OUTPUT.put_line ('failed to get x_form_id');
               lc_status := 'E';
         END;
      END IF;

      IF lc_status = 'Y'
      THEN
         FND_FORM_FUNCTIONS_PKG.INSERT_ROW (
            X_ROWID                    => x_row_id,
            X_FUNCTION_ID              => X_FUNCTION_ID,
            X_WEB_HOST_NAME            => NULL,
            X_WEB_AGENT_NAME           => NULL,
            X_WEB_HTML_CALL            => CREC.WEB_HTML_CALL,
            X_WEB_ENCRYPT_PARAMETERS   => 'N',
            X_WEB_SECURED              => 'N',
            X_WEB_ICON                 => NULL,
            X_OBJECT_ID                => NULL,
            X_REGION_APPLICATION_ID    => NULL,
            X_REGION_CODE              => NULL,
            X_FUNCTION_NAME            => CREC.FUNCTION_NAME,
            -- find unique function name using query
            X_APPLICATION_ID           => CREC.APPLICATION_ID,
            -- find application id using the query for appliaion names and pass 'FND'
            X_FORM_ID                  => x_form_id, -- find from id using formname 'XXCO'
            X_PARAMETERS               => CREC.PARAMETERS,
            X_TYPE                     => CREC.TYPE,
            X_USER_FUNCTION_NAME       => CREC.USER_FUNCTION_NAME,
            X_DESCRIPTION              => CREC.DESCRIPTION,
            X_CREATION_DATE            => SYSDATE,
            X_CREATED_BY               => -1,
            X_LAST_UPDATE_DATE         => SYSDATE,
            X_LAST_UPDATED_BY          => -1,
            X_LAST_UPDATE_LOGIN        => 0
         );

         DBMS_OUTPUT.put_line ('FUNCTION_NAME ' || CREC.FUNCTION_NAME);
      END IF;
   END LOOP;

   COMMIT;
END;
/

No comments:

Post a Comment

API to Delete FND Application (FND_APPLICATION_PKG.DELETE_ROW)

BEGIN    FND_APPLICATION_PKG.DELETE_ROW (X_APPLICATION_ID => 20003); END; /