Hello everyone,
we are developing our own modifications for IFS Cloud 22.2.2 with the IFS Developer Studio. We had several issues before ordering environments and deliveries from the build place which were related to the compilation and deployment procedure. But now I do not how to fix this problem.
Szenario
We added a custom field to CustomerOrder in Component ORDER. This field is a enumeration.
The enumeration was placed in component ORDER.
Now we want to use this enumeration in Component CFGCHR - Entity ConfigOptionValue.
But the deployment when ordering an environment fails:
!!!Error deploying file cfgchr/ConfigOptionValue.apv at 10-JAN-23 14:35:53
!!!Error creating VIEW CONFIG_OPTION_VALUE
CREATE OR REPLACE VIEW CONFIG_OPTION_VALUE AS
SELECT
characteristic_id characteristic_id,
option_value_id option_value_id,
description description,
note_text note_text,
Pol_Legal_Constraints_API.Decode(pol_legal_constraints) pol_legal_constraints,
pol_legal_constraints pol_legal_constraints_db,
pol_int_opt_val_msg pol_int_opt_val_msg,
pol_ext_opt_val_msg pol_ext_opt_val_msg,
pol_conf_opt_in_use pol_conf_opt_in_use,
rowkey objkey,
to_char(rowversion,'YYYYMMDDHH24MISS') objversion,
rowid objid
FROM config_option_value_tab
WITH READ ONLYORA-00904: "POL_LEGAL_CONSTRAINTS_API"."DECODE": invalid identifier
!!!Error deploying file cfgchr/ConfigOptionValue.apv at 10-JAN-23 14:35:53
!!!Error occurred while executing Plsql Block
DECLARE
PROCEDURE Alter_Column_Comment (
view_name_ IN VARCHAR2,
column_name_ IN VARCHAR2,
comment_ IN VARCHAR2)
IS
stmt_ VARCHAR2(32767) := 'COMMENT ON COLUMN ' || view_name_ || '.' || column_name_ || ' IS ''' || REPLACE(comment_, '''', '''''') || '''';
BEGIN
EXECUTE IMMEDIATE stmt_;
END Alter_Column_Comment;
BEGIN
Alter_Column_Comment('CONFIG_OPTION_VALUE', 'characteristic_id', 'FLAGS=PMI--^DATATYPE=STRING(24)/UPPERCASE^PROMPT=Characteristic Id^REF=ConfigCharacteristic^');
Alter_Column_Comment('CONFIG_OPTION_VALUE', 'option_value_id', 'FLAGS=KMI-L^DATATYPE=STRING(24)/UPPERCASE^PROMPT=Option Value Id^');
Alter_Column_Comment('CONFIG_OPTION_VALUE', 'description', 'FLAGS=AMIUL^DATATYPE=STRING(100)^PROMPT=Description^');
Alter_Column_Comment('CONFIG_OPTION_VALUE', 'note_text', 'FLAGS=A-IU-^DATATYPE=STRING(2000)^PROMPT=Note Text^');
Alter_Column_Comment('CONFIG_OPTION_VALUE', 'pol_legal_constraints', 'FLAGS=A-IUL^DATATYPE=STRING(200)^ENUMERATION=PolLegalConstraints^PROMPT=Legal Constraints^');
Alter_Column_Comment('CONFIG_OPTION_VALUE', 'pol_legal_constraints_db', 'FLAGS=A----^DATATYPE=STRING(20)^PROMPT=Legal Constraints^');
Alter_Column_Comment('CONFIG_OPTION_VALUE', 'pol_int_opt_val_msg', 'FLAGS=A-IU-^DATATYPE=STRING(2000)^PROMPT=Internal Message^');
Alter_Column_Comment('CONFIG_OPTION_VALUE', 'pol_ext_opt_val_msg', 'FLAGS=A-IU-^DATATYPE=STRING(2000)^PROMPT=External Message^');
Alter_Column_Comment('CONFIG_OPTION_VALUE', 'pol_conf_opt_in_use', 'FLAGS=A-IU-^DATATYPE=BOOLEAN^PROMPT=Pol Conf Opt In Use^');
EXECUTE IMMEDIATE 'GRANT SELECT ON CONFIG_OPTION_VALUE TO IFSSYS';
END;
ORA-00904: "POL_LEGAL_CONSTRAINTS": invalid identifier
ORA-06512: at line 9
ORA-06512: at line 16
!!!Error deploying file cfgchr/ConfigurationCharacteristicHandling.svc at 10-JAN-23 14:37:42
!!!PACKAGE BODY CONFIGURATION_CHARACTERISTIC_HANDLING_SVC created with compilation errors
PL/SQL: ORA-00904: "POL_CONF_OPT_IN_USE": invalid identifier error at line no :2190
PL/SQL: SQL Statement ignored error at line no :2181
This is because the enumeration api package is deployed after the view for ConfigOptionValue. I checked this by comparing timestamps in the specific component logs...
How can we fix this? I checked the deploy.ini. But the components already have a dynamic reference to each other.
The modification is in one feature branch. The enum was commited seperatly after the entity modification.
We have a similiar issue with an enum field in CcCase which references our own CMOD module. Here I could move the enum to calc but not in the case above …
Can somebody help?
On a more general point: Is there any more documentation on how the build / deployment order is decided? How is decided which .cre and cdb files are executed during a feature branch environment. And how for ordering deliveries. We had cases where the feature branch worked fine but then the deployment for ordering the delivery failed ...
All the best!