Video Screencast Help
Symantec to Separate Into Two Focused, Industry-Leading Technology Companies. Learn more.

AD Sync of EmployeeNumber Serviedesk 7.5 sp1

Created: 15 Jul 2014 • Updated: 20 Aug 2014 | 6 comments
This issue has been solved. See solution.

Most of the Information synces up but for some reason emloyeeNumber will not sync. 

I can open AD Explorer and log in to AD with application identity and see it fine.   

Would also like to have roomNumber as an option.

Operating Systems:

Comments 6 CommentsJump to latest comment

reecardo's picture

It maay be a datatype issue... emplyee# may be an integer in the PM DB but room number might be an alphanumeric. Do the logs say anything? (located at <install>/Logs)

André Florencio's picture

Hi, 

I have two suggestions to your question: 

1. You can configure the associated fields in the configuration of integration with AD:

AD.png

Next...

AD2.png

Next... and mapping fields.

AD3.png

2. Could be that the fields listed do not meet your needs, so I suggest creating a Workflow Monitor where he query the AD type, and then register the fields according to the ProcessManager Users table.

Regards,

André Florencio.

Kevin Shilling's picture

method 1 will do all the fields but employeeNumber or roomNumber.

Method 2
i am using
"Get All AD Users" to get the list users
"For Each Element in Collection" to go through it.
"Get User Details From AD" with roomNumber in "Additional Attributes" to get AD info
"Merge text" to combine office and roomNumber
"Get Current Date" to get modified on
"Multiple Value Mapping" to fill info into
and "update user" to update the user

a few filters and other switches to also deactivate generic accounts and none user accounts

but the loop keep crashing on me after 500 to 700 entries with error

System.Exception: exception invoking method ---> System.InvalidOperationException: Client found response content type of '', but expected 'text/xml'.
The request failed with an empty response.
   at System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage message, WebResponse response, Stream responseStream, Boolean asyncCall)
   at System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters)
   at MonitoringService.Begin()
   --- End of inner exception stack trace ---
   at LogicBase.Framework.DynamicProxy.InvokeMethod(String MethodName, Object[] parameters)
   at LogicBase.Tool.UI.Debugging.DebugEngine.ExecuteMethodThreadStart(Object parameter) in c:\build\projects\WF75_SDSP1_Apollo\core-tool\LogicBase.ToolShared\UI\Debugging\DebugEngine.cs:line 819

I can get through the whole list using a filter and running it over and over.  and now if i set to only look at accounts changed in the last 22 hours.  I should never have more than 50 or so a day.( unless they reorg the AD structure or rename a department)  
  

I guess i could of just filter it to the do it in blocks of 50.

Method 3 could i do this on the back end with notification server connector one data sorce being the sql and the other ldap?

also

what is "IsContact" ,"ContactOwnerID", "PerUserSalt"?

André Florencio's picture

You can try to do something like this Workflow: 

Workflow.png

If the user update does not meet your needs then make an integration to update the fields that need. 

Note: Workflow version 7.5 and you nedd input data about Active Diretory in Properties of projects

Regards,

André Florencio.

AttachmentSize
SyncUsers.package 1.42 MB
Kevin Shilling's picture

I'm using a more complicated version of that now.  And it Works most of the time, but after 600-800. Loops it crashes on either

Get User Details From AD

or

Update User.

All I want is for it to continue with the next item in the collection on a bad call but it ends the program. 

Execute Time (ms): 120955
System.Exception: exception invoking method ---> System.InvalidOperationException: Client found response content type of '', but expected 'text/xml'.
The request failed with an empty response.
   at System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage message, WebResponse response, Stream responseStream, Boolean asyncCall)
   at System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters)
   at MonitoringService.Begin()
   --- End of inner exception stack trace ---
   at LogicBase.Framework.DynamicProxy.InvokeMethod(String MethodName, Object[] parameters)
   at LogicBase.Tool.UI.Debugging.DebugEngine.ExecuteMethodThreadStart(Object parameter) in c:\build\projects\WF75_SDSP1_Apollo\core-tool\LogicBase.ToolShared\UI\Debugging\DebugEngine.cs:line 819

*note Ad information will need to be entered in the properties.

AttachmentSize
COT_USER_Information_Update.package 3.36 MB
Kevin Shilling's picture

Never Found out what was crashing, but made a "user define type with ad mapping" of Process Tracking with Finished, Name, Step, ID, Date.  made two monitoring workflows one that runs once a day to reset it and one that run every 15 minute and if not finished goes through the collection skips if under step and if equal add one to step and updates. if it get through set to finnished.  ususally takes 4 tries to get all the way through.

SOLUTION