Focal Point
[SOLVED] Handling potential nulls in stored procedure calls

This topic can be found at:
https://forums.informationbuilders.com/eve/forums/a/tpc/f/7971057331/m/7157050196

January 20, 2019, 01:12 PM
Sean Sweeney
[SOLVED] Handling potential nulls in stored procedure calls
Good Afternoon,

I am calling a stored procedure like so:

ENGINE SQLMSS SET DEFAULT_CONNECTION CONN_DEV
SQL SQLMSS
EX getPermissions '&&USER_ID', &&TEST_VAR;
TABLE FILE SQLOUT
PRINT *
ON TABLE SET PAGE-NUM NOLEAD
ON TABLE SET ASNAMES ON
ON TABLE NOTOTAL
ON TABLE HOLD AS 'foccache/hold_test' FORMAT ALPHA
ON TABLE SET HTMLCSS ON
ON TABLE SET STYLE OFF
END

TEST_VAR can potentially hold a guid or be null. If I'm understanding this correctly if it's null I have to pass the variable without quotes whereas if it's a guid I have to include the quotes. What is the easiest way to do make this work? My naive approach without knowledge of cleaner syntax would be:

if TEST_VAR EQ null
- run block without quotes
ELSE
- run block with quotes

But this is a contrived example, the actual use case involves 6 more parameters that I'm passing, most of which follow this guid or null scenario. So that solution wouldn't really hold up.

Thoughts on how I can do this? I'm assuming I'm just unaware of the proper syntax.

Thanks!

This message has been edited. Last edited by: FP Mod Chuck,


Windows 8203 All output formats
January 20, 2019, 02:49 PM
Waz
Assuming you are getting null passed through, a small bit of DM will fix this.

-SET &MyTestVar = IF &&TEST_VAR EQ 'null' THEN &&TEST_VAR ELSE '''' | &&TEST_VAR | '''' ;

ENGINE SQLMSS SET DEFAULT_CONNECTION CONN_DEV
SQL SQLMSS
EX getPermissions '&&USER_ID', &MyTestVar;
TABLE FILE SQLOUT



Waz...

Prod:WebFOCUS 7.6.10/8.1.04Upgrade:WebFOCUS 8.2.07OS:LinuxOutputs:HTML, PDF, Excel, PPT
In Focus since 1984
Pity the lost knowledge of an old programmer!

January 22, 2019, 04:59 PM
Sean Sweeney
Worked like a charm, thanks Waz!


Windows 8203 All output formats