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,
JamesGood 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.
thanksI 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 -
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 thisThanks 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
AaronHi 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?
ThanksYou 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,
TonyThis 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 FunctionHi,
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.YamagiwaOh 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. -
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
-
BIOS changes made by windows 8.1 without my knowledge
I am trying to have dual boot in my desktop so that i can login into Windows 8.1 or Ubuntu Linux. Everything is working fine except something very strange is happening. In my BIOS - boot order is getting changed by Windows. Even if i make it load ubu
-
My Macbook Pro will not print anything from any program. I've reinstalled the drivers. I get an error message in Word that says, "Word could not communicate with printer." Any ideas?
-
GetPosition for in between two markers
I hope someone can help me with a bit of code that I can't figure out - I don't even know if it's possible. The following code works fine: if (sym.getPosition() > 4000) { sym.getSymbol("symbol1").playReverse(); sym.stop("symb1"); else { sym.stop
-
For how long is the warranty for chargers of iphone 5?
warranty of the chargers
-
PC to Mac Migration Assistant Files
I used Migration Assistant to move from my old PC to my new iMac. Unfortunately, I did this after the initial setup. The day I did this I could find the files in /user/. The folders were password protected. Now I can't find /user/. Where are the