Import Format Amount Column Conditional on Account

We have a trial balance to Import into FDM. 4 columns tab delimited:- Account, Description, YTD movement, Balances
We need to load the Balance amount for specific accounts and the YTD movements amount for the remainder.
What is the best way of making this work?
Currently we are only able to get all Balances or all YTD movements.

without touching the file, I would load it twice. One pass on column 3 as amount, the next on column 4 as amount. Set up conditionals and ignore the amount if it doesn't meet criteria. But I would modify the extract file first if there were opportunity.
but I must say your HFM design is atypical. Most configurations out there make use of a custom member to calculate YTD movement on the balance as loaded. Very simple to do and also allows for custom members that allow input for non cash adjustments for CF reporting purposes.

Similar Messages

  • Importing multiple amount columns from a single text file

    I'm sure this question has been addressed many times. I have tried to search for an answer here and other areas, but I have not been able to find a clear answer yet. I am relatively new to HFM and FDM and thus do not have a lot of experience to fall back on. I am primarily a Planning/Essbase person. That being said, here is my question:
    I have a data source (text file) containing two amount columns that I need to load to HFM via FDM. One amount column consists of Average Exchange Rates and the other amount column consists of Ending Exchange Rates. I have been asked to develop a process to load both columns of data to HFM using a single process (one Import Format). I've been told this is possible by writing an Import DataPump script. It seems that I would need to create a temporary record set based on the original source file and modify it so that it contained a duplicate set of records where the first set would be used for the Average Rate and the second set would be used for the Ending Rate. This would be a piece of cake using SQL against a relational source, but that's obviously not the case here. I do have some experience with writing FDM scripts but from an IF... Then... Else... standpoint based on metadata values.
    If there is anyone out there that has time to help me with this, it would be most appreciated.
    Thanks,

    This is relatively easy to achieve with a single import script associated with the Account source field (assuming AverageRate and EndRate are accounts in your application) in your import format.
    Essentially your first amount say AverageRate would be set as the default field for Amount and these values would be loaded as if it were a single value file. For the second value, EndRate you would have to insert the second value directly into the FDM work table which is the temporary table populated when data is imported from a file during the import process. The example code snippet below suld gve you guidance on how this is done
    'Get name of temp import work table
    strWorkTableName = RES.PstrWorkTable
    'Create temp table trial balance recordset
    Set rsAppend = DW.DataAccess.farsTable(strWorkTableName)
    If IsNumeric(EndRateFieldValue Ref Goes Here) Then
              If EndRateFieldValue Ref Goes Here <> 0 Then
                   ' Create a new record, and supply it with its field values
                   rsAppend.AddNew
                   rsAppend.Fields("DataView") = "YTD"
                   rsAppend.Fields("PartitionKey") = RES.PlngLocKey
                   rsAppend.Fields("CatKey") = RES.PlngCatKey
                   rsAppend.Fields("PeriodKey") = RES.PdtePerKey
                   rsAppend.Fields("CalcAcctType") = 9
                   rsAppend.Fields("Account") = "EndRate"
                   rsAppend.Fields("Amount") = EndRateFieldValue Ref
                   rsAppend.Fields("Entity")=DW.Utilities.fParseString(strRecord, 16, 1, ",")
                   rsAppend.Fields("UD1") = DW.Utilities.fParseString(strRecord, 16, 2, ",")
                   rsAppend.Fields("UD2") = DW.Utilities.fParseString(strRecord, 16, 3, ",")
                   rsAppend.Fields("UD3") = DW.Utilities.fParseString(strRecord, 16, 16, ",")
                   'Append the record to the collection
                   rsAppend.Update
              End If
    End If
    'Close recordset
    rsAppend.close
    In addition the return value of this Import Script should be "AverageRate" i.e. name of ht eaccount associated with the first value field. The NZP expression also needs to be put on the Amount field in the import format to ensure that the EndRate Field value is always processed even if the value of AverageRate is zero.

  • FDM - Import Format (Fixed Column Type - No Delimiter)

    Hello,
    Question on FDM. I've built an import format and successfully imported a Fixed Column type text file. Everything imports beautifully. FYI - The format of the file looks just like a Trial Balance with a column for Debits and one column for Credits. In the import format setup, I am using the DrCrSplit script. Weird thing here is that I noticed it just ignored any of the rows where the balance was over 1 million (but brought everything else in perfectly). I've played with the Start and Length fields to no avail.
    Does anyone have any ideas?
    Thanks,
    James

    Good day,
    You can add a script as the last item to you amount import format, this will dump the values to a text file which may give you some idea of the issue. Open you file in a hex editor, there may be non printing characters.
    Thanks
    Function dumpamt(strField, strRecord)
    'Declare Local Variables
    Dim objFSAppend
    Dim objFAppend
    Dim strFileAppend
    Dim blnCreate
    'Initialize the file path
    strFileAppend = "\\networkdirectoy\YourFileName.txt"
    blnCreate = True
    'Open the file system object and create the file
    Set objFSAppend = CreateObject("Scripting.FileSystemObject")
    Set objFAppend = objFSAppend.OpenTextFile(strFileAppend, 8, blnCreate)
    'Append Data to File
    objFAppend.WriteLine(strField)
    'Close the objects
    objFAppend.Close
    Set objFAppend = Nothing
    Set objFSAppend = Nothing
    dumpamt = strField
    End Function

  • Amount from 2 different columns. import format?

    Hi all,
    Im trying to import amounts from 2 different columns. If accounts are "123" or "234" or...etc
    Then pull from column
    else use column 9
    can this be done in one import script? I want to know if I can assign import format amount to column 5 but only get the accounts asked for. else use column 9.
    thanks

    I made something like this, and assigned it to an amount column with all the amounts. Does it make sense?
    Function This_Code (strField, strRecord)
    Dim Account
    Dim Ammount
    'Field instead of strRecord
    account = DW.Utilities.fParseString(strField, 12, 5, ",")
    Amount = DW.Utilities.fParseString(strField, 12, 11, ",")
    If Account = "123" or Account = "456" Then
    Amount = This_Code
    End If
    Edited by: tyson33 on Jun 28, 2012 10:11 AM

  • Skip in import format

    Hi Everyone
    We have a requirement our source file is CSV file ( Delimter file) in that we have below records
    Account     Currency        Costcenter          Amount
    1001         USD              C001                  1000
    1002         INR               C002                   2000
    1003         EUR             C003                   3000
    From the above data we want only USD  data records  to be imported in FDM .like this
    1001     C001       1000
    In import format i have used skip  and  i have written import script  for Skip like this
    Dim strAccount
    'Store first value of account
    strAccount = strField
    'Check to see if value is empty
    If strAccount = "INR","EUR' Then
    'Skip Line
    Res.PblnSkip=True
    Else
    AccountEmptySkip=strAccount
    End if
    End Function
    When i am importing its importing all the records . its not skipping INR and EUR records
    Can anyone help me in resolving this

    Thanks for the quick reply SH
    We don't have currency dimension Filed in the import format. below are examples of our source file and import format
    Currency column is in source file , but it will not be in import format
    Account     Currency        Costcenter          Amount
    1001         USD              C001                  1000
    1002         INR               C002                   2000
    1003         EUR             C003                   3000
    Field Name            Field  Number    Numberof Fields           Expression
    Account                    1                      4
    CostCenter                3                      4
    Amount                     4                       4
    Skip                          2                       4                             Script=Skip.uss
    After your reply i have corrected my script and written below script
    Dim strSkip
    strSkip = strField
    If strSkip = "INR" OR strAccount = "EUR' Then
    SelectCADLines=strSkip
    Else
    Res.PblnSkip=True
    End if
    now also its importing all the records it not skipping INR AND USD records data
    Can you please explain me now how to resolve this issue

  • FDM Fixed-Width Import Format & Multiple Accounts/Periods Issue

    Hi FDM experts,
    I have an issue that I wanted to reach out to you on regarding fixed-width import formats and how to cater for my current scenario for export to Hyperion Planning.
    I am working with a flat file (.txt) I need to import to FDM with the current format;
    A
    B
    C
    D
    E
    F
    G
    Z
    Year
    Channel
    Product
    Jan-MTD-Account 1
    Jan-MTD-Account 2
    Jan-YTD-Account1
    Jan-YTD-Account2
    Dec-YTD-Account2
    2013
    Channel_1
    Product_1
    1000
    2000
    1000
    2000
    10000
    These are all fixed in width so the field lengths will need to be defined in the import format. The requirement for loading to the system is only a speciifc Month YTD value for both Account1 and Account 2.
    If my chosen Month is 2013 Jan, I will only require columns F and G to be loaded. These are the issues I have identified;
    Can a fixed width import format cater for loading to multiple accounts in the same file? Or would I need a separate import format per account?
    Can a fixed width import format cater for loading to a variable Actual Month period? Or do I need 12 import formats/locations per month?
    Your help is much appreciated!
    Many thanks
    Aaron

    Hi Aaron,
    the solution you are looking for needs pivoting your source file.
    Think that FDM, by default, only accepts files with one single column for amount. You have to pivot your file based on your logic and import the pivoted file.
    For example:
    Year     Channel     Product     ... Jan-YTD-Acc1     Jan-YTD-Acc2 ...
    2013     CH1          PR1               1000                    2000
    If your POV is Jan-2013, your data imported will look like:
    Year     Channel     Produc     Account     Amount
    2013     CH1          PR1          ACC1          1000
    2013     CH1          PR1          ACC2          2000
    All this process can be automated by playing with Import Scripts.
    HTH

  • Import Format for Separte Debit and Credit Columns (comma delimited file)

    I have a file that is comma delimited with a sparate debit column and a separate credit column:
    Sample:
    Ent,Acct,description,Dr,Cr
    ,1000,test,100,
    ,110010,another test,,100
    My import format is this:
    Comma delimited
    Field Number Number of Fields Expression
    Entity 1 5 SGB_ABC
    Account 2 5
    Amount 5 5 Script=DRCRSplit_Comma_Del.uss
    I've tried writing the following script to pull the amount from the debit column into the credit column but it just skips the lines with no amount in field 5.
    'Declare Variables
    Dim Field4
    Dim Field5
    'Retrieve Data
    Field4 = DW.Utilities.fParseString(strRecord, 4, 4, ",")
    Field5 = DW.Utilities.fParseString(strRecord, 5, 5, ",")
    'If Field4 has a value then fld 5 is to equal fld 4.
    If IsNumeric(Field5) Then
    Field5 = Field5
    Else
    Field5 = Field4
    End If
    'Return Result into FDM
    SQFLD5 = Field5
    End Function
    Can anyone tell me what I am doing wrong?
    Thanks!

    I got it to work using this script:
    Function DRCR_Comma_Del(strField, strRecord)
    'Hyperion FDM DataPump Import Script:
    'Created By:     testuser
    'Date Created:     7/22/2009 9:31:15 AM
    'Purpose: If Amount is in the DR column move it to the CR amount column.
    Dim DR
    Dim CR
    DR = DW.Utilities.fParseString(strRecord, 5, 4, ",")
    CR = DW.Utilities.fParseString(strRecord, 5, 5, ",")
    If IsNumeric(DR) Then
    strField = DR
    Else
    strField = "-" & CR
    End If
    DRCR_Comma_Del = strField
    End Function

  • Importing different Amount depending on Account

    Hi
    I am trying to import a different column (in CSV file) for the amount depending on the prefix of the Account field. Basically, I want to upload closing balances for some accounts and YTD movements for others. Does anyone know how I could write an import script that would do this?
    Thanks

    You would have to provide the format of the CSV, but it's fairly simple.
    When you create a Data Pump import script, one of the parameters passed in is strRecord. You can do a scripted parse of the strRecord to do a check on the account field. In a similar fashion you can do a scripted parse of strRecord for the desired amount and return that value.
    I will advise you that while this solution works, it is not the most visible solution in terms of auditing. You rarely want to do any adjustments to the amount in an import format. If you wanted to remain completely transparent, you may want to look into changes in the source extract.

  • FDM Import Format Spec with multiple Amount Fields

    Hello,
    I'm in the process of setting up an Import specification for one of our sites and the source extract consists of the following fields:
    Source Account Description BegBalDR BegBalCr YTDDR YTDCR
    01-511-5110     Inventory Adjustment     1,754.00     0     0     14,844.76
    I'm am trying to Import Field 5 & 6 and net them if necessary (example: YTDDR - YTDCR) and I continue to get an error. I have tried several diffrent ways but it seems that I can only import one or the other. After reading the FDM Admin guide I am wondering if I need to create a custom Script to accomplish this task.
    Any advice would be appreciated.
    Thank you,
    Tony

    This might be slightly complicated, but I think its the most direct solution ........
    Step 1 -
    In your Import Format, assign the Amount as :
    FieldName, Start, Length, Expression
    Amount, 1, 1, Script=NetAmounts5and6.uss
    Step 2 -
    Create an Import (DataPump) script called NetAmounts5and6 with the following code :
    Function NetAmount5and6(strField, strRecord)
    'Hyperion FDM DataPump Import Script:
    'Created By:     cbeyer
    'Date Created:     2/13/2009 5:57:14 PM
    'Purpose:
    'Get the last two fields
    Dim tmpRecord
    Dim strCurrentChar
    Dim strYTDCR
    Dim strYTDDR
    Dim x
    'Initialize fields
    tmpRecord = strRecord
    'Ensure we have data
    If Trim(tmpRecord) = "" Then Exit Function
    strYTDCR = ""
    strYTDDR = ""
    'Get YTD CR
    'One could use the replace command to change all spaces to a delimittable field and then
    'split out the string into a one dimensional array using the split command; however,
    'This would only work best if there is an exact number of spaces between the two numbers
    'Since I do not know if this is true, instead i'm looking for numeric/numeric like characters
    'and splitting based off of that.
    For x = Len(tmpRecord) To 1 Step -1
    strCurrentChar = Mid(tmpRecord,x,1)
    If (IsNumeric(strCurrentChar) Or strCurrentChar = "$" Or strCurrentChar = "." Or strCurrentChar = "," ) Then
    strYTDCR = strCurrentChar & strYTDCR
    Else
    Exit For
    End If
    Next
    'Trim down temporary record holder to remove the previous found amount and white space at the end of the string
    tmpRecord = RTrim(Left(tmpRecord,x)) 'Remove the first number from the string and white space
    'Get YTD DR
    For x = Len(tmpRecord) To 1 Step -1
    strCurrentChar = Mid(tmpRecord,x,1)
    If (IsNumeric(strCurrentChar) Or strCurrentChar = "$" Or strCurrentChar = "." Or strCurrentChar = "," ) Then
    strYTDDR = strCurrentChar & strYTDDR
    Else
    Exit For
    End If
    Next
    'do the math
    If IsNumeric(strYTDCR) And IsNumeric(strYTDDR) Then
    NetAmount5and6 = strYTDDR - strYTDCR
    Else
    NetAmount5and6 = 0 'This will cause the record to fail on import
    End If
    End Function

  • Issue in FDM Import script for ading multiple amount columns.

    Hi,
    I am trying to import the Multiple amount columns to be addedd and imported as one amount column.Below is the script I am using for the same,script is getting verified in Script editor but When I am trying to Load the File I am gettig an error as below.
    ERROR
    Code............................................. 9
    Description...................................... Subscript out of range
    Procedure........................................ clsImpProcessMgr.fLoadAndProcessFile
    Component........................................ upsWObjectsDM
    Version.......................................... 1112
    Thread........................................... 8380
    Scirpt
    Function Import_YTD(strField, strRecord)
    'Set variables
    dim strCurmnth1
    dim strCurmnth2
    dim strCurmnth3
    dim strCurmnth4
    dim strCurmnth5
    dim strCurmnth6
    dim strCurmnth7
    dim strCurmnth8
    dim strCurmnth9
    dim strCurmnth10
    dim strCurmnth11
    dim strCurmnth12
    dim strCurAmount
    strCurmnth1 = Trim(DW.Utilities.fParseString(strRecord, 20, 9, ","))
    strCurmnth2 = Trim(DW.Utilities.fParseString(strRecord, 20, 10, ","))
    strCurmnth3 = Trim(DW.Utilities.fParseString(strRecord, 20, 11, ","))
    strCurmnth4 = Trim(DW.Utilities.fParseString(strRecord, 20, 12, ","))
    strCurmnth5 = Trim(DW.Utilities.fParseString(strRecord, 20, 13, ","))
    strCurmnth6 = Trim(DW.Utilities.fParseString(strRecord, 20, 14, ","))
    strCurmnth7 = Trim(DW.Utilities.fParseString(strRecord, 20, 15, ","))
    strCurmnth8 = Trim(DW.Utilities.fParseString(strRecord, 20, 16, ","))
    strCurmnth9 = Trim(DW.Utilities.fParseString(strRecord, 20, 17, ","))
    strCurmnth10 = Trim(DW.Utilities.fParseString(strRecord, 20, 18, ","))
    strCurmnth11 = Trim(DW.Utilities.fParseString(strRecord, 20, 19, ","))
    strCurmnth12 = Trim(DW.Utilities.fParseString(strRecord, 20, 20, ","))
    If strCurmnth1="" Then strCurmnth1="0" End If
    If strCurmnth2="" Then strCurmnth2="0" End If
    If strCurmnth3="" Then strCurmnth3="0" End If
    If strCurmnth4="" Then strCurmnth4="0" End If
    If strCurmnth5="" Then strCurmnth5="0" End If
    If strCurmnth6="" Then strCurmnth6="0" End If
    If strCurmnth7="" Then strCurmnth7="0" End If
    If strCurmnth8="" Then strCurmnth8="0" End If
    If strCurmnth9="" Then strCurmnth9="0" End If
    If strCurmnth10="" Then strCurmnth10="0" End If
    If strCurmnth11="" Then strCurmnth11="0" End If
    If strCurmnth12="" Then strCurmnth12="0" End If
    'Calculate the YTD Amount
    strCurAmount = CDbl(strCurmnth1) + CDbl(strCurmnth2) + CDbl(strCurmnth3) + CDbl(strCurmnth4) + CDbl(strCurmnth5) + CDbl(strCurmnth6) + CDbl(strCurmnth7) + CDbl(strCurmnth8) + CDbl(strCurmnth9) + CDbl(strCurmnth10) + CDbl(strCurmnth11) + CDbl(strCurmnth12)
    Import_YTD =strCurAmount
    End Function

    Hi,
    how many columns has your file?
    that error means you are trying to access an invalid position.
    Regards

  • Import Format: Copy source account into UD1

    The Source G/L Account is used for both the HFM Account and HFM UD1 (Custom1). The mapping for FM Accounts and FM UD1 is set-up based on the GL Accounts. UD1 is not included in the GL extract file.
    How can I easy copy source Account into UD1 through the import format that can be used for several locations with different import formats?
    Example:
    GL Account: 1000 -> HFM account: 1000 > HFM UD1: FinS
    GL Account: 3000 -> HFM account: ctrl_Logic -> HFM UD1: Stat
    Currently I use for UD1 a script like DW.Utilities.fParseString(strRecord,4,2) to do that and it works. Unfortuntely I have at least many different locations with different import formats that would require this script to be adjusted for each import format.
    Any idea? Thanks for your help!

    Good day
    To get this working for different import format layouts you need to make use of the Res.PVarTemp1,,5 FDM variables, you can store information between different fields in the import fields. There are also workarounds if you need to store more than 5 values.
    So you need to create two scripts, the TempPut is attached to the account import field and the TempGet is attached to the UD1 import field
    Function TempPut(strField, strRecord)
    Res.PvarTemp1 = strfield
    TempPut = strfield
    End Function
    Function TempGet(strField, strRecord)
    TempGet= Res.PVarTemp1
    End Function
    Hope this helps

  • Conditionally Formatting One Column Based On The Value of Another Column

    I have the following requirement:
    I have 2 columns in a report showing Actual Sales & Budget Sales each year. I am using a bar chart to show the different values for these 2 columns.
    I need to conditionally format the column "Actual Sales" so that if it is less than the "Budget Sales" it will appear in red, and green if "Actual Sales" is greater than "Budget Sales." So in a nutshell,
    CASE WHEN "Actual Sales" < "Budget Sales" THEN
    RED
    ELSE
    GREEN
    END
    Thoughts anyone?

    CASE WHEN (COL1 - COL2) < 0 then Red else Green end
    regards
    John
    http://obiee101.blogspot.com

  • Different format template for each amount column?

    Greetings.
    Is it possible to assign diffrent format template for each amount column in Excel workbooks?
    I'll explain a bit more specific.
    Suppose there's a BW report to Excel as below.
          column1   column2   column3
    row1 111,111   222,222   333,333
    row2 111,111   222,222   333,333
    row3 111,111   222,222   333,333
    All columns are amounts, so the assigned format templates are all 'SAPBEXstdData'.  Here, the needs is that each column have the format of their own, such as 'Centered, large font size, bold, red color, etc'.
    I found out in SAP help portal that I can create workbook templates which include custom format templates, such as OurColumn1Template.  I also found I can use the workbook templates when opening BW queries.  But it doesn't seem possible to automatically specify format template OurColumn1Template is for column1 when creating a new Excel report from BW query or refreshing a query from a Excel report.
    How I can control which format template is assigned for which column? No way?
    By the way, we are on BW3.5.
    Thank you,
    T.Yamagiwa

    Oh my, I found out! It's easy, in a sense.
    We use MS Office 2003, so in the first place we need to change security setting about macro, by the SAP note below.
    Note 574596 - BEXAnalyzer SAPBEXOnRefresh is missing on Office XP
    https://websmp110.sap-ag.de/~form/handler?_APP=01100107900000000342&_EVENT=REDIR&_NNUM=574596&_NLANG=E
    Now that we've got SAPBEXOnRefresh module in a newly created Excel workbook, the rest we need to do is copy the SAPBEXOnRefresh module to the existing workbook, then code the module, like below.  (this is only doing left-justification)
    Sub SAPBEXonRefresh(queryID As String, resultArea As Range)
        Columns("I:I").Select
        With Selection
            .HorizontalAlignment = xlLeft
        End With
    End Sub
    I should have search the forum more carefully...hope somebody will find this post kind of useful in the future.
    Regards,
    T.Yamagiwa

  • Is it possible to make a condition for formatting multiple column?

    I am working on financial report like Balance Sheet. So that I am going to have 2 column and 1 on left, 2 and 3 on right.
    I tried to use format multiple columns but can't find any method to define where to break.

    when you create a stored procedure or use a command file( i believe) you can create CASE statements
    CASE WHEN ='BLUE' THEN 'COLUMN1'
    WHEN ='GREEN' THEN 'COLUMN2' END AS BUCKET1
    when you use this as the dataset you will see this as a field
    you can then group by the fields created.

  • Multiple Amount Columns

    I'm setting up an import format for a text file (to load data into Essbase) that has more than one column with an amount in it. e.g. column 1 is expense dollar amount, and column 5 is hours. the expense gets loaded to the account shown in column 2, and the hours in column 5 get loaded to an account called "Hours".
    I have another flat file, with about 12 amount columns, each loading to a different stat account. Same situation.
    (before you tell me that I should use a load rule and load to essbase, I know, but we're not doing it that way...)
    So my question is, how do I set up the import format to load more than one data column, where I know specifically what the account for the second columns is? I don't mind having to do some scripting, but I might need and example to follow.
    thanks.

    Awesome SH, Thanks.
    I did actually try the datapump approach and your thoughts agree with what I was thinking.
    The doc is a bit thin on the following, would you validate or correct me here?:
    I create a new datapump script "MyDataPump",
    The RES object (containing properties such as location key(PlngLocKey) and category key(PlngCatkey)) is valid in the context of the MyDataPump function
    The DW object from which I will access the table [DW.DataAccess.farsTable(strWorkTableName)] is valid in the contet oof the MyDataPump Function
    That all being ok, the one thing I still cannot figure out is where I get the name of the table where I'm loading the data (strWorkTableName)? Its passed as an arg in the Integration scripts, but not in the Datapump Script.
    Aslo, since I'm updating the table with the data for this extra amount field myself, what value do I return from MyDataPump, and how is it used by the import process that calls the script (IOW since I inserted the record myself, I don't really want FDM to do anything with this field after the script is run.

Maybe you are looking for