Customize Attribute Defaults

Partial deployment projects generate metadata about each of the files within the source, organized on the project files tab of the project.  This metadata is derived using Groovy scripts when the files are populated.  FlexDeploy provides a base implementation for these scripts.  They can be overridden to implement customer specific requirements if necessary.  This is an advanced topic, and there is no administration screen in FlexDeploy to manage these scripts.  To override you will insert the scripts directly into the FlexDeploy repository using SQL.

Step-by-step guide

Prepare SQL script as necessary and execute on FlexDeploy database.

Following example is for EBS projects, OTHER object type and TARGET_LOCATION attribute default script. Note FD_OBJECT_TYPE_OVERRIDES_EBS and OTHER_TARGET_LOCATION_DEFAULTSSCRIPT for DB Properties data. Basically FD_OBJECT_TYPE_OVERRIDES_<Project Type> and <Object Type>_<Attribute Type Code>_DEFAULTSSCRIPT.

Other options are LISTDATA and VALIDATORSCRIPT, which also can be tweaked using same mechanism.

You can either wait for 10 minutes for changes to take effect or work with your Administrator to clear cache, see Admin Operations.

Once you prepare Groovy script, each ' needs to be replaced with '' in SQL statement.

-- make sure to change DB_PROPERTIES_DATA_ID, DB_PROPERTIES_ID as appropriate.
UPDATE FD.OBJECT_ATTRIBUTE_DEF set OVERRIDE_DEFAULTS_SCRIPT='Y' 
where object_type_id=(select object_type_id from fd.object_type where project_type='EBS' and object_type_code='OTHER') and object_attribute_code='TARGET_LOCATION';
  
INSERT INTO FF.DB_PROPERTIES
(
DB_PROPERTIES_ID,
DB_PROPERTIES_NAME,
DB_PROPERTIES_KEY,
SEQUENCE_NUMBER,
DESCRIPTION,
IS_ACTIVE,
IS_REQUIRED,
IS_ENCRYPTED,
DATA_TYPE,
VALIDATION_SCRIPT,
VALIDATION_MESSAGE,
MIN_VALUE,
MAX_VALUE,
DISPLAY_ROWS,
DISPLAY_COLUMNS,
LIST_DATA,
CREATED_ON,
CREATED_BY,
UPDATED_ON,
UPDATED_BY,
VERSION_NUMBER
)
VALUES
(
8000,
'FD_OBJECT_TYPE_OVERRIDES_EBS',
'OTHER_TARGET_LOCATION_DEFAULTSSCRIPT',
0,
'Overriding default target location',
'Y',
'Y',
'N',
'String',
null,
null,
null,
null,
1,
1,
null,
sysdate,
user,
sysdate,
user,
1
);
  
INSERT INTO FF.DB_PROPERTIES_DATA
(
DB_PROPERTIES_DATA_ID,
DB_PROPERTIES_ID,
SEQUENCE_NUMBER,
DB_PROPERTIES_VALUE,
DESCRIPTION,
IS_ACTIVE,
CREATED_ON,
CREATED_BY,
UPDATED_ON,
UPDATED_BY,
VERSION_NUMBER
)
VALUES
(
8000,
8000,
0,
'dummy',
'',
'Y',
sysdate,
user,
sysdate,
user,
1
);

BEGIN
update  FF.DB_PROPERTIES_DATA set DB_PROPERTIES_VALUE = 'APP_SHORT_NAME=FDEBS_APPLICATION_SHORT_NAME ?: FILE_PATH_PREFIX.split(''/'')[1];
TARGET_LOC=''$'' + APP_SHORT_NAME + ''_TOP/patch/115'';
VAR_EXT=FILE_EXTENSION == '''' || FILE_EXTENSION == null ? '''' : FILE_EXTENSION;
VAR_EXT=VAR_EXT.toUpperCase();
if (''''.equals(VAR_EXT) || ''EXP''.equals(VAR_EXT))
{
    TARGET_LOC=''$'' + APP_SHORT_NAME + ''_TOP/Interfaces/secure/scripts'';
}
return TARGET_LOC.replace(''//'',''/'');' where 
DB_PROPERTIES_ID = 8000 AND 
SEQUENCE_NUMBER = 0;
END;
/
  
commit;

Following variables are available for use in the Groovy script along with Project Properties.

Variable NameExample using /path1/path2/APXSOBLX_1.rtf
FILE_PATH/path1/path2/APXSOBLX_1.rtf
FILE_NAMEAPXSOBLX_1
FILE_PATH_PREFIX/path1/path2
FILE_EXTENSIONrtf
PARENT_FOLDERpath2
FILE_CONTENTFile data
Project Properties - Code for each property can be used in script

You can also use PROJECT_ID, PROJECT_NAME, FOLDER_PATH variables in Defaults script if you want different behavior for specific Project(s). This is possible only for 4.5 build 10/27/2017 or later.

The following macros are not currently supported in the footer:
  • style