= FDO RFC 44 - Add IF Expression Function = This page contains an change request (RFC) for the FDO Open Source project. More FDO RFCs can be found on the [wiki:FDORfcs RFCs] page. == Status == ||RFC Template Version||(1.0)|| ||Submission Date|| Nov. 10, 2009 || ||Last Modified|| Orest Halustchak [[Timestamp]]|| ||Author||Orest Halustchak|| ||RFC Status||Not Ready for Review|| ||Implementation Status||draft|| ||Proposed Milestone||3.5.0.0|| ||Assigned PSC guide(s)||Orest Halustchak|| ||'''Voting History'''|| || ||+1|| || ||+0|| || ||-0|| || ||-1|| || == Motivation == This enhancement is to allow an application using an FDO expression to generate different values from a boolean expression. Typically this is to generate a different string value from a boolean expression. The MapGuide stylization engine includes a similar function, but it is not available at the FDO level and will be useful for users at this level. == Overview == This RFC proposes a new FDO expression function called IF that takes a boolean expression and chooses between two data values for the output. This function will be based on the stylization function and will be a migration of that implementation. == Proposed Solution == Define a new FDO Expression function called IF. {{{ /// /// Result, ValueIfTrue, and ValueIfFalse are the same data type. They can be any FDO numeric, string, or date/time data type. /// If Boolean Expression evaluates to true, then ValueIfTrue is returned. If Boolean Expression evaluates to false or is null, /// then ValueIfFalse is returned. Result = IF(Boolean Expression, ValueIfTrue, ValueIfFalse) /// /// E.g. IF(BoolProperty, ‘Oui’, ‘Non’) would generate ‘Oui’ if BoolProperty is true, otherwise ‘Non’. /// E.g. IF(BoolProperty, 1, -1) would generate 1 or -1. }}} == Provider Implementation == TBD. == Test Plan == Expand unit tests to test the proposed enhancements defined above. == Funding/Resources == Autodesk to provide resources / funding.