Need to create a job in informatica powercenter to login with the ID and sends a email if the ID is locked - etl

There is one ID which gets locked from time to time , so need to create a job in informatica powercenter to login with the ID and sends a email if the ID is locked.
Created a PowerCenter connection for this ID, and now thinking to create a PowerCenter job where we have a table in the database as a source and have a dummy target, if the session fails while we login with the ID, need to send out the email stating ID is locked
Can someone please suggest how should I proceed?

In PowerCenter, there is no direct way to look for a specific error message in the session log. But you can do below
Create a dummy session as you mentioned. Call is S1.
Save the session log for S1
session in a particular location. Or leverage the existing session
log file.
Write a shell script/ batch script, to look for "ID Locked" specific message in the session log for S1. For example in Oracle,
for account lock, you get error like "ORA-28000:the account is
locked". Similarly in your Database, for "ID Locked", you would have a specific error code and message. So in the script, you look for this keyword. If keyword found, fail the script else succeed it.
Call this script in a new session, say S2.
Use "On Failure E-Mail" task in Components tab of S2 to send mail.

Related

Unable to Assign an Incident in workflow- CRM

We have used the case Entity, there is default user that is used to assign a case on new creation or reactivation.
We have a workflow created for Case Reactivation, so whenever a case is reopen it is assigned to the default system user. It was working fine till September 20, but now when you give the survey after case resolution and then try to reactivate it it throws error in workflow. It works fine when you try to reactivate without giving the survey.
Error:
The real-time workflow named "Case is Resolved/Reopened" failed with the error "Principal user (Id, type=8, roleCount=1, privilegeCount=619, accessMode=0), is missing prvReadmsfp_questionresponse privilege (Id) on OTC=10247 for entity 'msfp_questionresponse'.
The System user has the role assigned as of salesperson, giving permission for this entity to salesperson does solve the issue, but the salesperson role is being used by many others to whom permission for this entity can't be given.
Can anyone tell us why this started causing issue after a particular time. Was there any updates from Microsoft Forms Pro for this entity?
Its very possible there have been updates from MS. You can review the solution history in make.powerplatorm.
https://learn.microsoft.com/en-us/powerapps/maker/common-data-service/solution-history
Look for the forms pro solution and check the solution history.
Is the "Default" user an actual person that logs in? Or a Service account that is only used for automation/workflows?
In any case, I'd suggest creating an add-on or feature role called something like "Question Response Reader" that only has the read permission for that entity. You can then add that role to the default user, and any other users that need to read that entity.
Probably Microsoft changed something in the background especially w.r.t security of forms Response entity msfp_questionresponse.
You easily solution is to give proper security rights to user who is ruining your workflow.
If it is run by the owner of the workflow then that user, if workflow runs under the context of user then that user should have read rights for entity msfp_questionresponse

How to Solve This error (Server Is Busy The record was saved. However, the data could not be displayed because the server is busy)

How do I solve this error that occurs after assigning a record to another user
Server Is Busy
The record was saved. However, the data could not be displayed because
the server is busy. Click Try Again to try to display the data now, or
click Cancel to continue to work. If you click Cancel, you can try
opening the record later.
When the security role of the old owner is just having user-level read access, this error will be thrown - since that record is owned by the new owner after the Assign operation.
The error message is bit incorrect here. The error was because the user had User Level Read Access to the record or (Entity to be specific) and on saving the record, we had one of our real-time workflow being triggered which was assigning this record to another user. And on assignment, the record being getting assigned to another user, the user who had created\saved the record was losing the access to it.
Reference

Parse.com - allow only one session per user

I have an App on Parse platform. What I need:
The User logs in on first device.
The User logs in on second device.
System revokes session on the first device.
I tried to remove objects from Session/Installation classes, but it did not help.
How can I do it?
Achieving this is not quite straightforward as there is no way to intercept login events or write cloud code triggers for Parse Session class. If you delete a client session record from the Session table, it should certainly revoke it and you end up getting authentication errors on that client. To achieve what you want, you need to write your own cloud function that logs a user in instead of using the SDK login function. That way you can first go through the Session table and revoke/delete any session associated with that user before logging in your user on the new device.

FileNet 5.2 subscription run as user

IBM Knowledge Center states that
Server disables security access checks during subscription execution
but does not mention the user credentials the code uses to execute which you need to know in order to map user RunAs roles on the application server.
What user credentials does FileNet use to execute event action code?
As I understand, when you create async subscription it will be executed under p8boostrap user.
And it will keep user context when you execute syncronious subscription.
But you can check it for sure.
It is using the user who triggered the action. E.g. if a user changes a property of a document (let's say DocumentTitle because it is always there) and clicks save, then an update event will be triggered which launches the subscription (if subscribed to the update event) which launches the action. Use synchronous for short running tasks, you can immediately show the update to the user. With asynchronous the user will have to click "Refresh".
Security can be a pain if not planned carefully at the beginning, for the action to be executed, the user has to have rights for the subscription, action event, document class etc. basically for everything involved or the user will get a cryptic error message when trying to modify the DocumentTitle.
Source: personal experience, sorry no official reference, if in doubt verify first.

How to use a shared Mailbox configured in Lotus Notes to send messages?

I have an application in VB6 using Lotus Notes so send emails to various recipients.
This is a heavy applications that sends daily reports and since it's a rather heavy task, there is a dedicated machine running it.
It has a win user logged in and the Lotus session that is being used, is the one related to the WIN user. Email messages are sent by the user who has a Lotus/Win session.
Now, this user has access to a shared Mailbox in Lotus. I want the email to be sent from this new shared Mailbox. I can do it manualy, and I noticed that the message is sent from the main email of this shared mailbox but is adds below it the fiedl "sent from UserX".
This is the situation that I want to automate.
I've this (VB6) code:
'Start a session to notes
Set Session = CreateObject("Notes.NotesSession")
'Get the sessions username and then calculate the mail file name
UserName = Session.UserName
MailDbName = Left(UserName, 1) & Right(UserName, (Len(UserName) - InStr(1, UserName, " "))) & ".nsf"
'Open the mail database in notes
Set Maildb = Session.GETDATABASE("", MailDbName)
I think I need to change this last line where I choose the MailDbName.
Can anyone give me some guideance, please?
Thank you.
The MailDbName is a string that contains the path and filename of the mail database within the server, for example "mail/user.nsf". In this case, the server is local, since the first parameter of the GETDATABASE method is passing an empty string. You can replace that with a server name if the database is on the server.
If you open the shared mail database and look at File > Database > Properties you can see the server and file path information and use that in this method call.
However, if the email is sent programmatically, you may need to check out this tip on how to make the "From" appear as someone different.

Resources