I am currently working on creating an Informatica mapping and workflow where I will have to send emails based on when a specific field in the mapping changes. Right now, I have that field sorted and then sent to a transaction control transformation where I have implemented logic so that if the current field value doesn't match the previous field value, I will then Commit otherwise I will continue the transaction.
The problem I am running into is that at the session level, I will have to send an email out each time the target values are committed (when the field value changes) and I am not entirely sure how to do that. How can I create a workflow where an email will be sent out multiple times within the session? Another important factor is that each time this session is run, the number of emails that have to be sent out could change or the number of rows that are committed each time could also change. So is there a way to implement this logic based on changing criteria?
To give a more concrete example, imagine I have the fields 'Names' and 'Number', where every time the name changes, I have to be able to send an email out to someone listing the 'Names' and the 'Number' fields.
Names Number
Bob 23
Bob 31
Bob 41
Alex 14
Alex 75
Steve 32
Steve 29
Steve 83
The next time the session is run though, the fields could be completely different, as shown below, but I would still need the same logic to apply where I have to send an email out to someone if the name changes.
Names Number
Tom 42
Carl 12
Carl 23
Carl 56
Carl 23
Evan 31
Evan 24
Kevin 21
Hopefully, what I have said is clear enough. And thanks in advance for any help!
I'm afraid it's not possible to send multiple emails just via Email Task or session's On Success Email. Those send just one message.
What you could try is to use the output and a shell script that will generate and send the emails for you, using the list as input.
Related
I have made a Customer search that identifying the customers that haven't purchased an item in six months or more. I've used group summaries and maximum summaries for the company name and the maximum transaction date, which refers to the latest sales order containing a certain item. The idea is to send them an email. However, the workflow is only executing on 20 records at a time. i even conducted a search that was not summarized and the workflow still only executed on 20 records. I did use the "Execute Now" button in testing mode to see how many entered the work flow from the summary search. But each execution only yields 20 workflow instances. the searches yield about 213 and 300 records respectively. I appreciate any insight!
Workflows using searches will only process 20 records when in testing mode.
From SuiteAnswers Article 36738 (NetSuite Login required)
When you execute a workflow on demand, NetSuite only processes the first 20 records returned by the saved search. For example, if the saved search for a scheduled workflow returns 1000 records, the workflow only initiates on the first 20 records returned by the saved search.
I want to define an intent PlaceReservation that would capture a restaurant reservation. The parameters for that would be numOfPeople and time. Both of those parameters are optional, so a user can say:
get a table for 5 people for 9pm
get a table for 5 people
get a table for 9pm
get a table
get a table for 5
get a table for 9pm for 5 people
get a table for 5 for 9pm
My problem is with the last one, get a table for 5 for 9pm the intent then captures 5 as the hour (5am) and ignores 9pm.
time is defined as a #sys.time system entity.
Is there a way to tell it to not accept simple integers as time, as I think this is what is confusing it?
Is there some other solution I'm missing?
I certainly understand why it is making the mistake, but we, as humans understand how to interpret it, and I want to help DialogFlow interpret it accordingly.
I've had a similar problem and haven't found a proper solution for it yet. In your case you could define your own time entity that consists of entries like 9pm or 10am or even expand it with a composite entity to also let users say "10 in the morning" https://dialogflow.com/docs/entities#dev_composite.
This is definitely confusing for the bot to understand/interpret which one is time & which one is the number of people. Even creating a separate entity for time like 9am/10am won't work cause this does not guarantee that user will enter 9am/pm only. They may not append am/pm ahead of time as well. The solution to your problem can be creating separate intents, first asking users for time & then for number of people. This way you reduce the complexity & can train the bot in a proper way. In addition, you can direct user to a certain direction instead of keeping your bot open for questions.
hi im looking at my talend jobs and trying to send the same email to 400 diff people, but i need to do it ONE AT A TIME, as opposed to all at once
what should i be looking at to complete this? iteration or looping somehow ? any references or advice greatly appreciated.
While having the email address, the subject and the body as rows I would use a tSendMail to send the mail inside a normal row loop and maybe a tSleep component to wait shortly if the email is big.
In the job settings, as stated by Balazs Gunics, you can set under "Extra" "Multi threaded execution" which, depending on your use case, can speed up the processing.
We have a log that tracks faxes sent through our fax server. It is a .csv that contains Date_Time, Duration, CallerID, Direction (i.e. inbound/outbound), Dialed#, and Answered#. This file is overwritten every 10 minutes with any new info that was tracked on the fax server. This cannot be changed to be appended.
Sometimes our faxes fail, and the duration on those will be equal to 00:00:00. We really don't know if they are failing until users let us know that they are getting complaints about missing faxes. I am trying to create a Powershell script that can read the file and notify us via email if there are n amount of failures.
I started working on it, but it quickly became a big mess as I ran into more problems. One issue I was trying to overcome was having it email us over and over if there are certain failures. Since I can't save anything on the original .csv's, I was trying to preform these ideas in the script.
Copy .csv with a new header titled "LoggedFailure". Create file if it doesn't exist.
Compare the two files, and add different data (i.e. updates on the original) to the copy.
Check copied .csv for Durations equal to 00:00:00. If it is, mark the LoggedFailure header as "Yes" or some value.
If there are n amount of failures, email us.
Have this script run as a scheduled task (every hour or so).
I'm having difficulty with maintaining the data. I haven't done a lot of work with scripting or programming, so I'm having trouble with making the correct logic. I can look up cmdlets and understand them, but my main issue is logic. Does anyone have any tips or could provide some ideas on how to best update the data, track failures as to not send duplicate information, and have it run?
I'd use a hash table with the Dialed# as the key. Create PSCustomObjects that have LastFail date and FailCount properties as the values. Read through the log in chronological order, and add/increment a new entry in the hash table every time it finds an entry with Duration of 00:00:00 that's newer than what's already in the hash table. If it finds a successful delivery event, delete the entry with that Dialed# key from the hash table if it exists.
When it's done, the hash table keys will be a collection of the Dialed numbers that are failing, and the objects in the values will tell you how many failures there have been, and when the last one was. Use that to determine determine if an alert needs to be sent, and what numbers to report.
When a problem with a given fax number is resolved, a successful fax to that number will clear the entry from the hash table, and stop the alerts.
Save the hash table between runs by exporting it as CLIXML, and re-import it at the beginning of each run.
Say for example I am getting a range of integers from a user:
Generate between nnn and nnn widgets.
Yes, most users will ensure that the first number is equal to or less than the second number:
Generate between 3 and 7 widgets.
But then there's that user, who wants to enter this data "back to front";
Generate between 7 and 3 widgets.
Do you quietly switch the fields around when the user clicks OK/Apply so, in the example above, you change the range of 7 to 3 back to 3 to 7 in the GUI? This might not be so practical on a web form where the user enters some data and then submits the form never to see it again but I'm thinking more in terms of a desktop application's settings page where the user's input is saved and subsequently viewed and edited again by the user.
Is it more important to try and educate users to enter a range that "makes sense" via error/alert messages, or quietly cajole their entries into the shape an application is expecting?
I suspect the "cajoling option" is more preferable, but could this "hey the program messed with my data!" approach be a problem for users?
I am currently writing an application that has a handful of these user-configurable ranges so I'm very interested to follow the general consensus of the SO experts.
If the user enters data incorrectly you shouldn't assume a particular pattern of error and automatically correct it. Either report the error to the user and ask them to correct it or suggest a correction that they can approve. In your example, what if the user intended to type 7 and 13 but simply mistyped. If you changed it to 3 and 7 you've entered incorrect data without the user's knowledge. I'd probably do the simple thing and use a visual alert when incorrect data is entered (but before it's actually submitted) and refuse to accept incorrect data, returning an error if it is submitted incorrectly.