Register

Anaplan Connect concern

leahorata24
New Contributor

Anaplan Connect concern

Hi,

 

I am currently having issues with my script using Anaplan connect and I hope someone could help me with these:

 

1. How to do a loop in a file directory in Linux?

- I have this file directory where all my files are starting with Test prefix (Sample: "Test1, Test2, Test3"). I should be able to run all Test*.txt items in to a one import button in my model. But below script is not working. Can someone help me with the correct command to do this scenario?

 

Filename="Test.txt"

 

for i in "/home/import/"Test*.txt; do

 

Operation1="-debug -service ${ServiceUrl} -auth ${AuthUrl} -workspace ${WorkspaceId} -model ${ModelId} -chunksize ${ChunkSize} -file '${Filename}' -put ${i} -import '${ImportName}' -execute -output '${ErrorDump}'"

 

done

 

2. Even though it was executed, no error was generated in the Error dump I have set. That's why I'm not sure how to check what kind of error was made. Also, no actual data was loaded in my model.

 

Thanks,

Leah

11 REPLIES 11
MarkWarren
Expert

Re: Anaplan Connect concern

I'd start with adding this:
echo $Operation1
check the output looks right looks right.
It looks okay to me, can't see any errors.

leahorata24
New Contributor

Re: Anaplan Connect concern

Hi, Mark.

 

Thank you for your response. I've tried doing your suggestion, I can display the right command (went thru the loop) however, it is still not imported to Anaplan. Any tips what to check in Anaplan model? For this, I am just importing in a numbered list with combination of properties as unique identifier. I've tried uploading the files manually and I was able to import the expected output. So I deleted my manual import again to try the script when I tried running it again, still nothing is imported.

 

Thanks,

Leah

ben_speight
Super Contributor

Re: Anaplan Connect concern

If you've edited the example file then you need to move everything from (and including) the Operation=... downwards inside your loop, and remove the "exec" from the last command.
If you rename Operation then any use ("${Operation}") must be renamed to match.
Finally you'll want a separate dump file for each import run - the easiest way to do this is to set ErrorDump=${i}-dump.txt inside the loop before the operation is built up.

leahorata24
New Contributor

Re: Anaplan Connect concern

Hi, Ben!

 

Thank you for the suggestion. Tried with the error dump approach but still no error was found.

 

Thanks,

Leah

ben_speight
Super Contributor

Re: Anaplan Connect concern

Can you post the whole script (with any credentials removed)?

leahorata24
New Contributor

Re: Anaplan Connect concern

Hi, Ben!

 

Thank you for your response. Below is my script:


#!/bin/sh
#This script uploads a set of files to an Anaplan Model,
#provided by a controller script

#*** SECTION 1 - SET VARIABLE VALUES ***

now=$(date +'%m_%d_%Y_%T')

#Set Anaplan Connect Variables
AnaplanUser=""
WorkspaceId=""
ModelId=""
ServiceUrl="https://api.anaplan.com"
AuthUrl="https://auth.anaplan.com"
ImportName="sample test"
Filepath="/home/anaplan-connect/import"
Filename="Test.txt"
ChunkSize=15
ErrorDump="/home/anaplan-connect/errorlog"


#Upload

for i in "/home/anaplan-connect/import/"Test*.txt; do

 

Operation1="-debug -service ${ServiceUrl} -auth ${AuthUrl} -workspace ${WorkspaceId} -model ${ModelId} -chunksize ${ChunkSize} -file '${Filename}' -put '${i}' -import '${ImportName}' -output '${ErrorDump}'"


#____________________________ Do not edit below this line ______________________________

LogFile1="$now-ANAPLAN-LOG-DATA-HUB-<FILENAME>-UPLOAD.TXT"

if [ "${AnaplanUser}" ]; then
Credentials="-user ${AnaplanUser}"
fi

if [ "${KeyStorePath}" ]; then
Credentials="-keystore ${KeyStorePath} -keystorepass ${KeyStorePass} -keystorealias ${KeyStoreAlias}"
fi

echo cd "`dirname "$0"`"
cd "`dirname "$0"`"
if [ ! -f AnaplanClient.sh ]; then

echo "Please ensure this script is in the same directory as AnaplanClient.sh." >&2
exit 1
elif [ ! -x AnaplanClient.sh ]; then
echo "Please ensure you have executable permissions on AnaplanClient.sh." >&2
exit 1
fi
/bin/echo "${Operation1}"

 

#**** SECTION #2 - Write Log File ****

# Echo the results to the log file

echo "*** ALL OPS COMPLETED ***" > ./BASH_STAT1.TXT

echo "-------------------------------------" >> ./BASH_STAT1.TXT

cat "$LogFile1" >> BASH_STAT1.TXT

cat BASH_STAT.TXT > "$LogFile1"


done

MarkWarren
Expert

Re: Anaplan Connect concern

You are missing the execution of the Anaplan Client script, this should go after your /bin/echo "${Operation1}" line:

 

Command="./AnaplanClient.sh ${Credentials} ${Operation1}"
/bin/echo "${Command}"
exec /bin/sh -c "${Command}"

ben_speight
Super Contributor

Re: Anaplan Connect concern

The "exec" should be removed, though - it will cause the shell running the script to terminate abruptly

leahorata24
New Contributor

Re: Anaplan Connect concern

Hi, Mark!

 

Thanks! I was able to add the last command line. It was able to work and imported to Anaplan however only one file was imported. Is there anything that I could add for the loop to work? Thanks!

 

Regards,

Leah