Search This Blog

SBL-DAT-00493: Text constant (%1) needs to be enclosed in single quotes.

Applies to:

Siebel Tools
IBM AIX on POWER Systems (64-bit)
Product Release: V8 (Enterprise)
Version: 8.0 [20405] FRA
Database: IBM DB2 8.1 FixPack 8
Application Server OS: IBM AIX 5L 5.2
Database Server OS: IBM AIX 5L 5.2

This document was previously published as Siebel SR 38-3365819321.

Symptoms

SBL-DAT-00493

Hi Support

We are currently trying to migrate our Siebel V7.5 Repository to V8.0.

We had a customized BC with 2 Calculated Field.
Field A
- Calculated Value=Number
- Type:DTYPE_TEXT
Field B
- Calculated Value=IIf([Field A]>0,'OK','KO')
- Type:DTYPE_TEXT

In V7.5, there was no problem with this configuration.

After V8.0 migration, we have a runtime error:
ObjMgrQueryLog Warning 2 0000000246640f64:0 2007-06-04 17:28:07 (query.cpp (984)) SBL-DAT-00493: La constante de texte (0) doit �tre inscrite entre guillemets simples.
Veuillez continuer ou demander � l'administrateur syst�me de v�rifier la configuration de l'application si le probl�me persiste.
ObjMgrLog Warning 2 0000000246640f64:0 2007-06-04 17:28:07 (query.cpp (2600)) SBL-DAT-00501: Sp�cification de recherche 'IIf([Test Calculated Value1]>0,'Y','N')' non valide.
Veuillez continuer ou demander � l'administrateur syst�me de v�rifier la configuration de l'application si le probl�me persiste.

I reproduced the problem in Vanilla V8.0 ( see the attached file Account.sif; fields "Test Calculated*")

So it seems the field A has a Text type in V8.0 whereas it had an Number type in V7.5.

I didn't find any documentation in bookshelf V7.5 that recommend setting a specific type for calculated fields (The type was dynamically deduced).

In V8.0, since Revision A (April 2007), in the bookshelf "Siebel Developer's Reference > Operators, Expressions, and Conditions >Calculated Field Rules",
there has been this sentence:
"For a calculated field whose calculated value is not of type DTYPE_TEXT, the field type must be specified explicitly."

Is it a standard behaviour in V8.0?
If yes, is there any documentation about how we can migrate all our existing calculated Fields?( we didn't find anything in the Database Upgrade Guide)

Thanks in advance.

Solution

Message 1

For the benefit of other readers:

V8 has changed the way the calculated fields interact with other parts of the application.

Bookshelf states:
"Siebel Developer's Reference > Operators, Expressions, and Conditions >Calculated Field Rules",
"For a calculated field whose calculated value is not of type DTYPE_TEXT, the field type must be specified explicitly."

This caused the customer an issue as when upgrading the calculated fields gave a search error.

There were two ways in which this issue could be resolved.

1) After upgrading, navigate through the application and look for the error in the logs. This will then give the BC upon which the error occurs.

2) CR#12-1JPYP1L and CR#12-1JVI3Q3 have been raised for this issue; one to see if this can be added to the upgrade process and the other to see if the functionality of v7.x can be regressed for v8.

CR#12-1JVI3Q3 has been fixed in 8.0.0.3 Fix Pack.

Thank you,
Oracle | Siebel Technical Support


Applies to:

Product Release: V7 (Enterprise)
Version: 7.5.3.1 [16161]
Database: Oracle 9.2.0.2
Application Server OS: Microsoft Windows 2000 Advanced Server SP 3
Database Server OS: Sun Solaris 2.7

This document was previously published as Siebel SR 38-1102332291.

Symptoms

SBL-DAT-00493

Dear Support Team,

We have migrated from 7.5.2 to 7.5.3.1, in the forecast area before migration, subordinates were able to submit their forecasts, but after migration they can't submit their forecasts. When they try to submit their forecasts, the application crashes. Attached you can find siebel log file in which SIEBEL_LOG_EVENTS was set to 4. I logged in as a subordinate and then navigate to forecasts screen and then tried to change status field from "Active" to "Submitted". In the log file this change starts from line 22025.
This thursday we will go for production test, for that reason could you please advice us ASAP.

Solution

Message 1

For the benefit of other users:

Customer found that they were unable to submit forecasts and it crashed the Client application.

Turning on Client-side logging had the error ""ObjMgrLog    Error 4 2003-10-21 16:14:02 (SBL-DAT-00493) Text constant (Y) needs to be enclosed in single quotes. Please continue or ask your systems administrator to check your application configuration if the problem persists." followed by a call stack.

This behavior was not reproducible with the Standard SRF and only with the custom SRF. The log indicated that the error occurred after an insertion into S_ACCNT_ATT table. Customer had a custom Business Component called "Forecast Attachment" and it was based on S_ACCNT_ATT table. In forecast submission Customer was generating forecast data (based on opportunities and products) into an excel file.

One of the custom user properties on Forecast 2000 -- Forecast Business Component, had a text constant (Y) without quotation marks. Customer fixed this User Property and they were able to successfully submit forecasts.

Applies to:

Product Release: V7 (Enterprise)
Version: 7.5.3.11 [16199] SVE Fin Svcs
Database: Microsoft SQL Server 2000 SP4
Application Server OS: Microsoft Windows 2000 Advanced Server SP 3
Database Server OS: Microsoft Windows 2000 Advanced Server SP 4

This document was previously published as Siebel SR 38-3064193301.

Symptoms

SBL-EXL-00145, SBL-DBC-00105, SBL-DAT-00398, SBL-DAT-00403, SBL-DAT-00493, SBL-DAT-00501

Hi

We have an X_ column that is defined to contain a MLOV field. That field is used as a MVF and when a search spec is created on that field an sql error occurs.

Looking at the sql it seems like the LANG_ID parameter is missing as input (there are three bind variables but four parameters are needed for the query, the first beeing LANG_ID)

It is Bind variable 2 (Låna) below that is the MLOV field.

If we query on another field using the sam MVL it works fine, also the sql works fine if all parameters are supplied

Any suggestions?

Regards
Jonas

SELECT
      T1.CONFLICT_ID,
      CONVERT (VARCHAR (10),T1.LAST_UPD, 101) + ' ' + CONVERT (VARCHAR (10),T1.LAST_UPD, 8),
      CONVERT (VARCHAR (10),T1.CREATED, 101) + ' ' + CONVERT (VARCHAR (10),T1.CREATED, 8),
      T1.LAST_UPD_BY,
      T1.CREATED_BY,
      T1.MODIFICATION_NUM,
      T1.ROW_ID,
      T1.ACCNT_ID,
      T1.COMMENTS,
      T1.COMMIT_FLG,
      T1.CONTACT_ID,
      T1.COST_AMT,
      T1.REVN_AMT_CURCY_CD,
      CONVERT (VARCHAR (10),T1.EFFECTIVE_DT, 101) + ' ' + CONVERT (VARCHAR (10),T1.EFFECTIVE_DT, 8),
      T1.PROD_DESC_TEXT,
      T1.DOWNSIDE_AMT,
      T1.MARGIN_AMT,
      T4.NAME,
      T1.X_EXTERNAL_USER,
      T1.X_ASSET_NUM,
      T10.ATTRIB_03,
      CONVERT (VARCHAR (10),T1.EXPECT_DLVRY_DT, 101) + ' ' + CONVERT (VARCHAR (10),T1.EXPECT_DLVRY_DT, 8),
      T1.X_QUOTE_NUM,
      T11.LOGIN,
      T3.REF_NUMBER_2,
      T3.DETAIL_TYPE_CD,
      CONVERT (VARCHAR (10),T1.X_ACCEPT_DT, 101) + ' ' + CONVERT (VARCHAR (10),T1.X_ACCEPT_DT, 8),
      T4.NAME,
      T1.OPTY_ID,
      T6.ROW_ID,
      T5.NAME,
      T3.PART_NUM,
      T1.NET_PRICE,
      T4.SUM_REVN_ITEM_ID,
      T3.NAME,
      T1.PROD_ID,
      T7.NAME,
      T1.PROD_LN_ID,
      T1.QTY,
      T1.REVN_AMT,
      T1.CLASS_CD,
      T1.REVN_ITEM_NUM,
      T1.TYPE_CD,
      T9.LOGIN,
      T8.NAME,
...

Solution

Message 1

...

   WHERE
      ((T1.SUMMARY_FLG = 'N') AND
      (T1.TMPL_ID IS NULL)) AND
      (T1.PROD_ID IN (
            SELECT SQ1_T2.PROD_ID
               FROM dbo.S_PROD_LN SQ1_T1 INNER JOIN dbo.S_PROD_LN_PROD SQ1_T2 ON SQ1_T2.PROD_LN_ID = SQ1_T1.ROW_ID INNER JOIN dbo.S_PROD_LN SQ1_T3 ON SQ1_T1.PAR_PROD_LN_ID = SQ1_T3.ROW_ID INNER JOIN dbo.S_LST_OF_VAL SQ1_T4 ON SQ1_T3.X_AREA_CATEGORY = SQ1_T4.NAME AND SQ1_T4.TYPE = 'LF_RM_AREA_CATEGORY' AND SQ1_T4.LANG_ID = ?
               WHERE
                  (SQ1_T1.X_QUOTE_FLG = ? OR SQ1_T1.X_QUOTE_FLG IS NULL) AND
                  (SQ1_T1.X_TYPE IS NULL OR SQ1_T1.X_TYPE = 'ProductGroup') AND
                  (SQ1_T4.VAL = ?))) AND
      (T1.OPTY_ID = ?)
   ORDER BY
      T1.OPTY_ID DESC, T1.CREATED DESC

(note 4 question marks for bind variables above, but just 3 bind variables below:)

Bind variable 1: N
Bind variable 2: Låna
Bind variable 3: 1-48EJ2

Message 2

For the benefit of other readers:

When querying on an MLOV enabled field in the customer's database with for example

EXISTS([LF Area Category] = Skydda)

this produces an SQL statement that has one bind variable missing,

resulting in the error message

"Not enough values for host variables"

This is reproducible in
7.5.3.11 [16199] SVE SIA (Fin Svcs)

Change Request
12-U4DBNJ
"Less bind variables available than requested by the SQL spool. This is related to MLOV config."
had been logged for this behavior
and this is fixed in
7.5.3.12 Fix Pack [16272]
(Fix request 12-UXRMM1)

After installing the 7.5.3.12 [16272] Maintenance Release,
the query completed successfully.

Regards,

Applies to:

Product Release: V7 (Enterprise)
Version: 7.5.2.7 [15058] Com/Med
Database: Oracle 9i
Application Server OS: Microsoft Windows 2000 Advanced Server SP 2
Database Server OS: Sun Solaris 8

This document was previously published as Siebel SR 38-822831751.

Symptoms

SBL-DAT-00493


If we define a Detail BC as a Business Component which use MVL to call other calculated fielda from a Main BC. (e.g. Account BC and Contact BC use MVL to call Field "A" which is a calculated field from CUT Address BC)

The scenario is shown as follows

Detail BCs cannot call any calculated field (e.g. Field "A") from a Main BC which contain a calcuated formula as IIf([English Flag] = 'Y',1,0)

This leads to the error message, "Text constant (Y) needs to be enclosed in single quotes", when the Siebel application is turned on.

However, if Detail BCs are not use MVL to call Field "A", using the same formula in Field "A" will not cause an error message

Solution

Message 1

For the benefit of other users,

The correct syntax is to place a "" (double quotes) around 'Y' (Y in single quotes) in the calculated formula, that is, IIF([English Flag] = "'Y'","1", "2").

As there are no documentation or information on the usage of the syntax of calculated value when used as a MVF, change request 12-DTTBTX has been logged to address this issue.

No comments:

Post a Comment