HTMLTextarea in a custom activity space - _htFormData problem

I can create a form in a custom activity space and read the HTMLInput form types after the form post in the XPHashtable available in both the Model's SavePage() method and the RepostControl's PerformAction() method - they're all in the htFormData hashtable just fine.  But when I try to use an HTMLTextarea - the textarea never shows up.  I know other input types require a certain naming convention to be followed or they blow up the form post (e.g. textbox names must start w/ 'intx_' and buttons must be 'in_bu_'). I looked at code the in the plumtree_ui_source portalpages project and found a textarea there called 'in_ta_yadayada' - so I named mine 'in_ta_yadayada' - but that didn't fix it.
Any ideas?

Greetings,
When I use an IControl and post form data to it that includes an HTMLTextArea, I am able to grab the textarea's entered value from CheckActionSecurityAndExecute's arguments. The name of my HTMLTextArea is "in_tx_test":
public Redirect CheckActionSecurityAndExecute(XPHashtable arguments)
String[] sValues = (String[]) arguments.GetElement("in_tx_test");
sValues[0] will then contain whatever was entered into the textarea. Could you perhaps try implementing your solution this way?
Regards,
Andrew Bays | bdg | [email protected] | http://www.thebdgway.com

Similar Messages

  • Using JSF in custom activity spaces

    Has anyone tried using JSF to build a custom activity space?

    Hi Badri,
    Please refer : 7.12.4 How to Generate a Task Display Form in http://download-west.oracle.com/docs/cd/B31017_01/core.1013/b28764/bpel012.htm
    Hope that answers your question!
    Cheers
    Anirudh Pucha

  • Pls Help - ClassNotFoundException error - custom activity space and control

    I am encoutnering the following error when I deploy and run my custom
    Login Activity Space and Control to the Java 5.0.2 Portal. I have created a custom Java project and built successfully(I think) using Ant and have modified the customactivityspaces.xml file appropriately. I have checked that the custom jar file is in the portal.war and PORTAL_HOME\lib\java\ folder. Any help with this would be extremely appreciated.
    Please let me know if I can provide more info.
    Thanks.
    46323     07-20     14:16:24     Fatal     UI Infrastructure     6000     5880 (main)     com.plumtree.uiinfrastructure.activityspace.ASManager.InternalLoadClasses(ASManager.java:497)     Fatal Exception loading lib file: stapleskiosklogin_java.lang.ClassNotFoundException: com.my.kiosk.login.KioskLoginControl_     at java.net.URLClassLoader.findClass(URLClassLoader.java:241)_     at java.lang.ClassLoader.loadClass(ClassLoader.java:516)_     at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:460)_     at java.lang.ClassLoader.loadClass(ClassLoader.java:448)_     at java.lang.Class.forName1(Native Method)_     at java.lang.Class.forName(Class.java:142)_     at com.plumtree.openfoundation.util.XPDynamicDiscovery.GetClass(XPDynamicDiscovery.java:344)_     at com.plumtree.openfoundation.util.XPDynamicDiscovery.GetClassesForWar(XPDynamicDiscovery.java:266)_     at com.plumtree.openfoundation.util.XPDynamicDiscovery.GetInstancesFromLib(XPDynamicDiscovery.java:121)_     at com.plumtree.uiinfrastructure.activityspace.ASManager.InternalLoadClasses(ASManager.java:490)_     at com.plumtree.uiinfrastructure.activityspace.ASManager.LoadCustomClasses(ASManager.java:437)_     at com.plumtree.uiinfrastructure.application.AppWarmUp.Init(AppWarmUp.java:442)_     at com.plumtree.portal50.application.AppWarmUpServlet.init(AppWarmUpServlet.java:109)_     at javax.servlet.GenericServlet.init(GenericServlet.java:256)_     at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:935)_     at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:823)_     at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:3421)_     at org.apache.catalina.core.StandardContext.start(StandardContext.java:3609)_     at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:821)_     at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:807)_     at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:579)_     at org.apache.catalina.core.StandardHostDeployer.addChild(StandardHostDeployer.java:700)_     at java.lang.reflect.Method.invoke(Native Method)_     at org.apache.commons.beanutils.MethodUtils.invokeMethod(MethodUtils.java:252)_     at org.apache.commons.digester.SetNextRule.end(SetNextRule.java:256)_     at org.apache.commons.digester.Rule.end(Rule.java:276)_     at org.apache.commons.digester.Digester.endElement(Digester.java:1058)_     at org.apache.xerces.parsers.SAXParser.endElement(SAXParser.java:1403)_     at org.apache.xerces.validators.common.XMLValidator.callEndElement(XMLValidator.java:1550)_     at org.apache.xerces.framework.XMLDocumentScanner.scanElement(XMLDocumentScanner.java:1809)_     at org.apache.xerces.framework.XMLDocumentScanner$ContentDispatcher.dispatch(XMLDocumentScanner.java:949)_     at org.apache.xerces.framework.XMLDocumentScanner.parseSome(XMLDocumentScanner.java:381)_     at org.apache.xerces.framework.XMLParser.parse(XMLParser.java:1098)_     at org.apache.commons.digester.Digester.parse(Digester.java:1567)_     at org.apache.catalina.core.StandardHostDeployer.install(StandardHostDeployer.java:385)_     at org.apache.catalina.core.StandardHost.install(StandardHost.java:803)_     at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:442)_     at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:399)_     at org.apache.catalina.startup.HostConfig.start(HostConfig.java:718)_     at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:358)_     at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:166)_     at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1196)_     at org.apache.catalina.core.StandardHost.start(StandardHost.java:738)_     at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1188)_     at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:347)_     at org.apache.catalina.core.StandardService.start(StandardService.java:497)_     at org.apache.catalina.core.StandardServer.start(StandardServer.java:2190)_     at org.apache.catalina.startup.Catalina.start(Catalina.java:512)_     at org.apache.catalina.startup.Catalina.execute(Catalina.java:400)_     at org.apache.catalina.startup.Catalina.process(Catalina.java:180)_     at java.lang.reflect.Method.invoke(Native Method)_     at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:203)

    Thanks a lot for your help Julie! That worked.
    I have a followup question. Now, I get the Login view even though I didn't include a login view in my custom activity space.
    I am trying to develop the custom login activity space and don't want to display the default loginview and want to auto login. So I have created a custom activity space and a custom control. I am not sure if I have everything coded correctly yet. How do I make sure I don't display the login view if I go to my custom space directly?
    What's the best way to do this? I am still trying to go through the PT code and understand it. Any pointers would be very helpful.
    Additionally, for the custom activity space: do I need to extend PlumtreeAS or AActivitySpace ?
    I have my code listed below:
    package com.my.kiosk.login;
    import com.plumtree.portalpages.common.uiparts.*;
    import com.plumtree.uiinfrastructure.activityspace.*;
    import com.plumtree.xpshared.htmlelements.*;
    * Activity Space for Kiosk login.
    public class KioskLoginSpace extends AActivitySpace // AActivitySpace or PlumtreeAS ??
         public static final String STR_MVC_CLASS_NAME = "KioskLogin";
         * @see com.plumtree.uiinfrastructure.activityspace.IManagedObject#Create()
         public Object Create()
              return new KioskLoginSpace();
         * @return
         public String GetName()
              return STR_MVC_CLASS_NAME;
         * @see com.plumtree.xpshared.activityspace.AActivitySpace#Init()
         public void Init()
              super.Init();
              //RegisterPage(new LoginDP());
              //RegisterModel(LoginModel.STR_MVC_CLASS_NAME);
              //IModel myModel = GetModel(LoginModel.STR_MVC_CLASS_NAME);
              //RegisterView(LoginView.STR_MVC_CLASS_NAME, myModel);
              // Register the control in this space
              RegisterControl(KioskLoginControl.STR_MVC_CLASS_NAME, null);
         * Determine whether or not the current user has the security
         * privileges necessary to view the requested page.
         * @see com.plumtree.uiinfrastructure.activityspace.AActivitySpace#CheckBasicAccess(String, String, boolean)
         public boolean CheckBasicAccess(String strPage, String strControl,
                                                 boolean _bSameSpace)
              // All users are allowed to access this space
              return true;
         /* (non-Javadoc)
         * @see com.plumtree.uiinfrastructure.activityspace.AActivitySpace#GetStyleSheetLinks()
         public HTMLElementCollection GetStyleSheetLinks() {
              // TODO Auto-generated method stub
              return null;
    package com.my.kiosk.login;
    import com.plumtree.debug.*;
    import com.plumtree.openfoundation.util.*;
    import com.plumtree.openfoundation.web.*;
    import com.plumtree.portalpages.browsing.myportal.*;
    import com.plumtree.portalpages.browsing.myportal.mypages.*;
    import com.plumtree.portalpages.common.login.*;
    import com.plumtree.portaluiinfrastructure.login.*;
    import com.plumtree.server.*;
    import com.plumtree.uiinfrastructure.activityspace.*;
    import com.plumtree.uiinfrastructure.application.varpacks.*;
    import com.plumtree.uiinfrastructure.login.*;
    //import com.plumtree.portalpages.browsing.login.*;
    * This class handles the control logic for Store Kiosk login.
    public class KioskLoginControl implements ILoginControl, IHTTPControl
         /** object name */
         public static final String STR_MVC_CLASS_NAME = "KioskLogin";
         /** Query String parameters */
    //     public static final String PARAM_CREATE_ACCT = "createacct";
         /** MVC Objects */
         private AActivitySpace m_asOwner;
    //     private LoginModel m_asModel;
         /** these need to be nulled out after execution. */
         private IWebData m_WebData = null;
         private IXPRequest m_xpRequest = null;
         private IPTSession m_userSession = null;
         * @see IHTTPControl
         * @param r
         * @param pageData
         public void SetHTTPItems(IXPRequest r, IWebData pageData)
    //          In a given request, this method is called first.
              m_xpRequest = r;
              m_WebData = pageData;
         * @see com.plumtree.xpshared.activityspace.ILoginControl#SetRedirectForUseAfterLogin(Redirect)
         public void SetRedirectForUseAfterLogin(Redirect r)
              // In a given request, this method is called second.
              return;
         * @see com.plumtree.xpshared.activityspace.IControl#execute()
         public Redirect CheckActionSecurityAndExecute(XPHashtable arguments)
              // In a given request, this method is called third.
              if (PTDebug.IsDebugTracingEnabled(Component.Portal_Browsing))
                   PTDebug.Trace(Component.Portal_Browsing, TraceType.Error,
                        "KioskLoginControl CheckActionSecurityAndExecute() creating redirect to the Kiosk subportal");
              // In a given request, this method is called third.
              if (PTDebug.IsInfoTracingEnabled(Component.Portal_UI_Infrastructure))
                   PTDebug.Trace(Component.Portal_UI_Infrastructure, TraceType.Error,
                                  "GuestSubportalLoginControl Execute() creating redirect to MarkAsGuestControl.");
              // Redirect to the MarkAsGuestControl to mark this session as a guest user.
              // redirect to myPage
              Redirect myRedirect = new Redirect();
              myRedirect.SetLinkCreateNewSpace(MyPageAS.STR_MVC_CLASS_NAME,
                   m_asOwner);
              myRedirect.SetControl(SetPageControl.STR_MVC_CLASS_NAME);
              //int iId = mySession.GetSessionInfo().GetCurrentUserID();
              IPTSession mySession = (IPTSession)(m_asOwner.GetUserSession());
              int iId = mySession.GetSessionInfo().GetCurrentUserID();
              iId = -1 * iId;
              String sId = XPConvert.ToString(iId);
              myRedirect.AddControlArgument(SetPageControl.STR_PAGE_ID, sId);
              // Make this use a true 302 redirect
              myRedirect.SetIsHTTPRedirect(true);
              return myRedirect;
              //return null;
         * This method is used to determine if the guest user should
         * be redirected to their default page or to the login page
         * if a space is not specified.
         * @param RequestData
         * @return boolean true implies the guest should redirect to
         * login if no space is specified. Login is default.
    /*     private boolean IsRedirectOnLogoutEnabled()
              ConfigVarPack vpConfig = (ConfigVarPack) m_asOwner.GetApplication().GetVarPackManager().GetVariablePackage
                   (ConfigVarPack.VARPACK_ID);
              String strGuestRedirect = vpConfig.GetConfigValueAsString(
                   ConfigConstants.AUTHENTICATION_SECTION, "RedirectOnLogout",
                   ConfigConstants.VALUE_ATTRIBUTE);
              // default value
              boolean bResult = true;
              if ((strGuestRedirect != null) && (!"".equals(strGuestRedirect)))
                   if (XPConvert.ToInteger(strGuestRedirect) == 0)
                        bResult = false;
              return bResult;
         // IMVCObject
         * @see com.plumtree.uiinfrastructure.activityspace.IManagedObject#Create()
         public Object Create()
              return new KioskLoginControl();
         // Methods from ILoginControl
         * @see com.plumtree.xpshared.activityspace.ILoginControl#DoGetSession()
         public boolean DoGetSession()
              // The interpreter should ask us for the session.
              // In a given request, this method is called fourth.
              // Attempt to login as the custom guest user here, rather than in GetSession()
              // so that if we are unable to connect, we can abort the login attempt.
              // Otherwise, we have no way of knowing in the PEI whether or not login
              // has previously failed, and we can get in an infinite loop.
              try
                   //Add code to derive Kisok user name after Store lookup
                   String strKioskUserName = "kiosk0000";
                   String strKioskUserPassword = "";
                   // Look at the request URL to determine what URL this user
                   // is trying to access.
                   // Switch strCustomGuestName to your first custom guest here
    /*               if (XPStringUtility.IndexOf(m_asOwner.GetCurrentRequestURL(),
                                                           "firstsubportal") != -1)
                   // Switch strCustomGuestName to your second custom guest here
                   else if (XPStringUtility.IndexOf(m_asOwner.GetCurrentRequestURL(),
                                                                "secondsubportal") != -1)
                   // Connect as the custom guest user
                   m_userSession = PortalObjectsFactory.CreateSession();
                   m_userSession.Connect(strKioskUserName, strKioskUserPassword,
                                            null);
              catch (Exception e)
                   if (PTDebug.IsErrorTracingEnabled(Component.Portal_UI_Infrastructure))
                        PTDebug.Trace(Component.Portal_UI_Infrastructure,
                                       TraceType.Error,
                                       "Unable to connect to Kiosk user.", e);
                   m_userSession = null;
                   // Since we are unable to connect to our custom guest user, we do not
                   // want to login right now.
                   return false;
              return true;
         * @see com.plumtree.xpshared.activityspace.IControl#GetName()
         public String GetName()
              return STR_MVC_CLASS_NAME;
         * @see com.plumtree.xpshared.activityspace.ILoginControl#GetSession()
         public Object GetSession()
              // In a given request, this method is called fifth.
              if (null != m_userSession)
                   LoginResult rReturn = null;
                   try
                        // Login the custom guest user. This calls the login PEIs.
                        rReturn = LoginHelper.INSTANCE.AttemptLogin(m_userSession,
                                                                               m_asOwner,
                                                                               m_xpRequest,
                                                                               m_WebData);
                   catch (Exception e)
                        if (PTDebug.IsErrorTracingEnabled(Component.Portal_UI_Infrastructure))
                             PTDebug.Trace(Component.Portal_UI_Infrastructure,
                                            TraceType.Error, "AttemptLogin() failed.", e);
                   if (!rReturn.m_bSuccess)
                        if (PTDebug.IsErrorTracingEnabled(Component.Portal_UI_Infrastructure))
                             PTDebug.Trace(Component.Portal_UI_Infrastructure,
                                            TraceType.Error,
                                            "KioskLoginControl AttemptLogin() failed: " +
                                            rReturn.m_strError);
                   if (null != rReturn.m_Redirect)
                        if (PTDebug.IsErrorTracingEnabled(Component.Portal_UI_Infrastructure))
                             PTDebug.Trace(Component.Portal_UI_Infrastructure,
                                            TraceType.Error,
                                            "KioskLoginControl AttemptLogin() return redirect ignored.");
              IPTSession userSession = m_userSession;
              // Null out the IHTTPControl data so we don't retain the memory after the
              // request is done (i.e. leak the memory)
              m_xpRequest = null;
              m_WebData = null;
              m_userSession = null;
              return userSession;
         * @see com.plumtree.xpshared.activityspace.IControl#Init(IModelRW)
         public void Init(IModel model, AActivitySpace space)
    //          m_asModel = (LoginModel) model;
              m_asOwner = space;

  • Programmtic login - from either a custom activity space or LoginAction PEI

    I know how to programmatically logout using:<br>
    Redirect redirect = null;<br>
    redirect.SetLinkCreateNewSpace(LoginAS.STR_MVC_CLASS_NAME, null);<br>
    redirect.SetControl(LoginControl.STR_MVC_CLASS_NAME);<br>
    redirect.AddControlArgument(LoginHelper.PARAM_DOLOGOUT, true);<br>
    redirect.AddControlArgument(ASConstants.CLEARSESSION, "true");<br>
    return redirect;<br><br>
    I got that code from right here in the forums - thanks.<br>
    However, I need a snippet that will programatically login and return a Redirect now, too. Does anyone have a snippet that will do that?<br><br>
    p.s. I'll be putting it into a LoginActions PEI in the OnFailedLoginDoRedirect(). In our use case, if someone tries to login and it fails, I'll be checking a custom sql table that maps old bad logins to new good ones and attempts programmatic re-login with the retrieved/mapped credentials.<br><br>
    p.p.s I'll have all 3 items in my pocket - userId, username, and password - if that makes a difference in the possible solution that gets posted here. I could also get a login token for the mapped user if that's necessary, too. So I can get 4 things to help w/ the programmatic login.<br><br>
    Thanks in advance.

    LMah gets full credit for this answer (just mimic the login form!):<br><br>
    Redirect redirect = new Redirect();<br>
    redirect.SetLinkCreateNewSpace(LoginAS.STR_MVC_CLASS_NAME, null);<br>
              redirect.AddControlArgument("in_hi_space", "login");<br>
              redirect.AddControlArgument("in_hi_spaceID", 0);<br>
              redirect.SetControl(LoginControl.STR_MVC_CLASS_NAME);<br>
              redirect.AddControlArgument("in_hi_dologin", true);<br>
              redirect.AddControlArgument("in_tx_username", "administrator");<br>
              redirect.AddControlArgument("in_pw_userpass", "");<br>
              redirect.AddControlArgument("in_se_authsource", "");<br>
              return redirect;<br>
    <br>If you'd like to use api constants instead of hard coding the input values, you can always do something like this:<br>
    redirect.AddControlArgument(LoginHTML.PARAM_USERPASS, "");

  • Activity space to change portal language

    Hello,
    I am trying to build an activity space that works as follows:
    In the page header I want to have a link that points to my custom activity space and that when clicked, will alternate the portal's locale between French and English and keep the user on his current page.
    This activity space will need to work for both guest users and logged in users.
    I have seen on previous posts that people have done this before but not enough details are ever provided to be able to figure out how to do it properly.
    Essentially I need an activity space without a view or display since the user is not taken to any page when they click on the link. It simply refreshes the page in the new language.
    Could someone provide me some guidance as to which Activity Space , Control and Model class I should be extending to be able to code this functionality since there are so many classes available and examples with most of them implementing a View class that I can't figure out what I need and how to setup the proper execution flow.
    No details are too much.
    Thank you from this confused newbie

    Hello DJ,
    When you get time would you mind provide short description (ideas) how to do this? I mean that may be useful for others if they need to do this in future.
    In aqualogic the same things can be done by different ways sometimes and you may have the best solution.
    Thank you.
    Dmitry

  • Problem refering to a custom activity in a SharePoint 2013 workflow

    I have created a few custom activities to handle common tasks in a workflow. The activities are deployed in a separate sandbox solution from the workflows referencing them.
    This has been working fine for a couple of months now, but suddenly I get an error when trying to activate the feature that provisions the workflow that refers to the custom activity (WriteMessage). The error is:
    Error 1
    Error occurred in deployment step 'Activate Features': Microsoft.Workflow.Client.ActivityValidationException: Workflow XAML failed validation due to the following errors:
    Cannot create unknown type '{wf://workflow.windows.net/default/f0b36ec0-d40f-4df8-a99b-39f6dc4854a8/09e1bc2d-1cc8-4cff-ae22-32a52f54b685/$Activities}WriteMessage'. HTTP headers received from the server - ActivityId: ac291077-6536-4c63-b7b0-7701b6d29268. NodeId:
    DKRDSSP15DEV03. Scope: /SharePoint/default/f0b36ec0-d40f-4df8-a99b-39f6dc4854a8/09e1bc2d-1cc8-4cff-ae22-32a52f54b685. Client ActivityId : e9d2bfd0-bb0e-4c28-bf55-8748368feb5b. ---> System.Net.WebException: The remote server returned an error: (400) Bad
    Request.
       at Microsoft.Workflow.Common.AsyncResult.End[TAsyncResult](IAsyncResult result)
       at Microsoft.Workflow.Client.HttpGetResponseAsyncResult`1.End(IAsyncResult result)
       at Microsoft.Workflow.Client.ClientHelpers.SendRequest[T](HttpWebRequest request, T content)
       --- End of inner exception stack trace ---
       at Microsoft.Workflow.Client.ClientHelpers.SendRequest[T](HttpWebRequest request, T content)
       at Microsoft.Workflow.Client.WorkflowManagementClient.SendRequest[T](HttpWebRequest request, T content)
       at Microsoft.Workflow.Client.ActivityManager.Publish(ActivityDescription description, Boolean overwriteXClassName, Boolean terminateDependentInstances)
       at Microsoft.SharePoint.WorkflowServices.FabricWorkflowManagementClient.PublishActivity(String serviceGroupName, ActivityDescription activity, Boolean overwriteXClass, Nullable`1 terminateInstances)
       at Microsoft.SharePoint.WorkflowServices.FabricWorkflowDeploymentProvider.PublishActivity(FabricWorkflowManagementClient client, ActivityDescription activityDefinition, String serviceGroupName)
       at Microsoft.SharePoint.WorkflowServices.FabricWorkflowDeploymentProvider.<>c__DisplayClass5.<PublishDefinition>b__4()
       at Microsoft.SharePoint.WorkflowServices.WorkflowServiceContextExtensions.InvokeWithEcosystemRetry(WorkflowServicesContext context, EcosystemRequiredMethod method)
       at Microsoft.SharePoint.WorkflowServices.FabricWorkflowDeploymentProvider.PublishDefinition(WorkflowDefinition workflowDefinition)
       at Microsoft.SharePoint.WorkflowServices.WorkflowDefinitionStorageEventReceiver.PublishDefinition(SPItemEventProperties properties)
    0 0
    Vestas.SP.CMS.AlarmReports
    I have tried creating a simple workflow using the custom activity, by referencing the sandbox solution. This works fine, if I create the simple workflow in a new project and deploys it and activate the workflow feature. However, if I create a similar simple
    workflow in the original solution and omit the original workflows. Then I still get the above error when deploying / activating the workflow feature. 
    How do I clean up my original project so it does not give me this error when deploying and activating the workflow feature?
    best regards
    Lars Kohsel
    Best regards Lars Kohsel

    Hi,
    As the error still occur when you create a simple workflow in the original project, maybe some configurations have been changed in the project.
    You can check with the new created project whether there are some difference configurations in the project.
    There is a similar article for your reference.
    http://blogs.msdn.com/b/cliffgreen/archive/2013/03/11/sharepoint-2013-workflow-deployment-errors.aspx
    What’s more, you can also copy your original project code to the new project, then check whether it works.
    If it works, the we can use the new project instead of the original project.
    Thanks,
    Jason
    Forum Support
    Please remember to mark the replies as answers if they help and unmark them if they provide no help. If you have feedback for TechNet Subscriber Support, contact
    [email protected]
    Jason Guo
    TechNet Community Support

  • Workflow Custom Activity deploy in multi server environment

    I have been working on a project that involves developing a custom workflow activity for SharePoint 2013. I am developing it in a single server environment working with http.
    My problem occurs when deploying to multi-server environment with https (WFE, APP). My question is how to deploy my solution to the new environment. 
    The steps:
    Create a project - c# activity library
    Add a workflow activity, add .xml
    Deploy the .dll and .xml of project to:
    "C:\Program Files\Workflow%20Manager\1.0\Workflow\Artifacts" "C:\Program Files\Workflow Manager\1.0\Workflow\WFWebRoot\bin"
    net sotp "Workflow Manager Backend"
    net start "Workflow Manager Backend"
    Deploy .DLL to GAC
        - Created MSI using install shield in VS2010 to add .DLL to GAC
        - Verify .DLL in GAC by going to c:\windows\assembly and %windir%\Microsoft.NET\assembly
    iisrest
    Deploy WSP to SharePoint, activate feature, open SharePoint Designer 2013 and choose the custom action that now appears when creating a 2013 workflow
    To recap we have workflow manager on the APP server and and the workflow client on the WFE. We deployed the .DLL and .XML to the workflow manager (APP) only. The .DLL is deployed
    to/in the GAC on the WFE and the APP. We are able to see and create the activity in Designer 2013 and we deploy the workflow to a normal SharePoint list. When we run the workflow we do not get any errors in the ULS logs, event viewer or Workflow Manager Debug
    Logs (event viewer also). The site is not created though. We believe the issue is that the custom C# (.DLL) is not being ran. 
    This all works fine and dandy on my single server environment. Workflow is working like a charm. How can we trouble shoot what the issue is if we are not finding any errors?
    Is there a step that we missed or some other place we need to look for logs? Would the ULS logs show the site creation or show running our custom code? Currently it does not show anything when we run the workflow.
    Let me know if this is unclear or if anyone needs more information. Thanks

    Hi,
    Here is a workaround for your reference:
    We can develop a custom WCF service instead of the Custom Activity in SharePoint. And then use the service from workflow. It use a separate dedicated server for workflow without having any reference to SharePoint DLLs from inside workflow.
    Here is a similar thread for your reference:
    https://social.technet.microsoft.com/Forums/systemcenter/en-US/d462ca07-9861-4133-948a-fc9771306cb1/custom-workflow-how-to-go-from-single-server-to-multiple?forum=sharepointdevelopment
    Thanks,
    Dennis Guo
    TechNet Community Support
    Please remember to mark the replies as answers if they help and unmark them if they provide no help. If you have feedback for TechNet Subscriber Support, contact
    [email protected]
    Dennis Guo
    TechNet Community Support

  • SPD2010 Custom activity asembly missing when wep app uses https (http works perfectly)

    Hello,
    For a while now, we've been working with a custom workflow activity (http://spdwfextensions.codeplex.com/) in our SharePoint system. Today, we changed our web application from http access
    to https. The change seemed to go without a hitch, until we checked our workflows and none which use the Custom activity will start (with status Failed to Start). If we opened the workflow in SPD2010, the lines with the custom action were replaced by
    lines that read "Could not deserialize object. 'Nivlag.SpdGenericInterfaceActivity' The type could not be resolved.
    The problem got weird when, while trying to debug it, we realized that if we used the old http connections the workflow worked perfectly once again (the workflows worked correctly as well as SPD 2010). As soon as we retried the https connection the
    same issues reappeared. 
    We want to move to using SSL with all our WebApps, but right now, this situation is a total show-stopper. 
    Any helped would be deeply appreciated.
    Technology is the curse of the blessed

    Hello Carlos,
    Please list detailed steps of how you changed web application from http access to https.
    Few things to try:
    1. Make sure AAM is set correctly for http and https sites.
    2. You may need to add root cert of your SSL certificate to Central Admin->Security->Manage Trusts.
    This link includes steps to add root cert -
    http://blog.brainlitter.com/2010/08/02/resolution-for-sharepoint-designer-2010-data-source-non-specific-error/.
     3. Clear client site proxy assembly cache for SPD workflow actions:
    Clear the proxy assembly
    cache on the machine where SharePoint Designer is installed. Delete all directories and files at %System Drive%\Documents and Settings\%user%\Local Settings\Application Data\Microsoft\WebSiteCache or for Vista %System Drive%\Users\%user%\AppData\Local\Microsoft\WebSiteCache.
     If above does not help resolved your issue, you may consider to open a support ticket with Microsoft -
    http://support.microsoft.com/default.aspx?id=fh;en-us;offerprophone
    However, other members of the community may still have encountered the issue you're seeing, and have a solution to offer!
    Regards,
    Jing Wang | Microsoft Online Community Support

  • Windows To Go's activation is a problem

    Windows To Go is a application on Windows 8 Ent, it can provide an easy way to use Windows 8 on any PCs and Macs, but I find that Windows To Go's activation is a problem. When I changed my device, it will aks me for re-active Windows... Is this a problem?

    When key activation starts driving customers to Linux bootable USB environments Microsoft needs to seriously look at what it is doing wrong.
    The activation tie to hardware profiles is outmoded and past its sell by date. Microsoft its time to move on or see your product being moved out.
    Customers are sick and tired of activation hassle deploy LINUX for removable OS. Worrying trend is that the realisation that LINUX workstation is a very polished OS and usable is causing a reverse effect back into organisations
    to Microsoft detriment. Mac OSX is also making inroads in this portable space as well.
    Windows To Go is a great idea, badly implemented, practical for large organisations who can manage the Key infrastructure and absorb the Support Desk overhead it generates.

  • ALUI KD Activity Space Modification.

    Hi,
    I am seeking some input regarding to modifying the View/ActivitySpace for the Knowledge Directory. I am at a customer site, where the customer is eager to have us modifying the View & Activity Space for Knowledge Directory, Basic Search, and Advanced Search, as to only allow searches within KD folders and documents crawled into the KD server.
    I have tried modifying the UI Code, particularly the FolderBannerView.CS file. However, the end result is with limited success, because the portal automatically puts a form on top of another form and such breaking the javascript generated by the SearchFormFactory class.
    Can someone help me on this topic? Or, at least give me a ball-park figure on how much effort (# of hours) will be required to change those ActivitySpace & Views?
    Many Thanks,
    Ray

    One of the keys to understanding ALI development is knowing the difference between native (UI customization) and remote (portlet) development.
    AActivitySpace.getString is only available in native code. For remote code, my suggestion is to use the IDK to retrieve the locale and then roll your own I18N.
    Chris Bucchere | bdg | [email protected] | http://www.thebdgway.com

  • Secure Zone Customer Activity Tracking

    I'm new to Business Catalyst, so this may be obvious to some of you, but I have a question about tracking customer activity on my Business Catalyst site. I can track logins into Secure Zones, but only whether/not the customer has logged into the site.
    What I'd really like to do is track a customer's usage of the site - in other words, I'd like to see what a customer's activity looks like on the site. So if a customer goes from Home (secure zone login), to About, to whatever other page. I suppose how much time they spend is too granular, but if I could figure out how to track their site usage, it'd really help me with a client. The only way I can see how to do it on my own is to require users to log in to every single page, which compromises far too much usability.
    So, how about it? Is there anyone that can provide a suggestion, either using the BC interface, or using some other type of tracking mechanism?

    BC can't do that out of the box. You may want to use Google Analytics for that.
    Cheers,
    -m

  • How to restrict transaction type in customized activity pop-up

    We have created a custom workcenter link for search enhancement of activities. We copied the work center link and are calling the same component as in std search but a different customized configuration with added and deleted fields in search criteria. This works fine. Now the requirement is to restrict the 'transaction types' available when we click on the 'new' button in the new custom activity search page. As this pop-up emanates from the std component, it can not be functionally configured (because that would restrict the 'transaction types' while creating new activity in std componnet) but should be technically handled. Please advise.

    Hi Amar,
    Solution here is to let the framework know who is caller ?
    That is, when pop up is opening, you have to put a code in this pop up view to understand who is invoking this pop up , Is it the search page of std. component configuration or is it the custom search page configuration ?
    So have a static attribute in some Z class, you can use your IMPL class also for that matter, Now whenever you know that its custom config i.e. in DO_CONFIG_DETERMINATION, read the role key( i assumed that you have a role key for your custom config)
    and if its custom role key, then set this static parameter say ZCUST_CONFIG = abap_true else abap_false (this is must to reset it using else as this is static attribute )
    Now, in your pop_up view, read this static attribute as XXXX_IMPL=>zcust_config , and if true, then you know that the pop up is invoking from custom config, so do the coding to remove the unwanted transaction types.
    and you are done !!
    Hope it helps you.
    Thanks & Regards,
    SUCHITA

  • Apps not opening in the assigned Space but in the active Space

    I'm not sure if this is normal behavior in Spaces or not:
    I have Acrobat assigned to Space 1, Chrome assigned to Space 2. When I download a PDF via Chrome and then click to launch it, Acrobat opens in Space 2, not where my other Acrobat files are located and assigned (Space 1).
    Is this the way Spaces is supposed to work? That an application or file opened via another application opens in the active Space rather than the assigned Space? With this behavior, I then need to drag the PDF document from the wrong Space to the right Space if I want to see it side by side with other PDF files. It seems to work this way for all of the different files as well as when I launch an application for the first time. It too opens in the active Space, not the assigned Space.
    I've tried this with the "When switching to an application, switch to a space with open windows for the application" checked and unchecked and it makes no difference.
    Am I missing something? Is this the way it's supposed to work?

    Sometimes if you open a PDF through a web browser it opens as a window in the browser rather than the app. I don't have Acrobat or use chrome but if I open a PDF from a web site in Safari it just opens as a page in Safari rather than in Preview. Therefore if I assign Preview to a certain space and open a PDF in Safari it will open in any space that I have assigned to Safari. Or the active space if I haven't assigned any.

  • Customizing AM Images & Facing Problem in Update & Deploy War files

    Hey Guys!
    This is Yash Bansal from Gurgaon, India. i am new to access manager. i am now customizing it and facing problem in customizing.
    I have customized images which is present in directory path:
    opt/SUNWam/web-src/services/images/
    and updated services.war file which is present in directory path:
    opt/SUNWam/war/
    with command
    jar -uvf services.war /opt/SUNWam/web-src/services/images/login-backimage.jpg
    then deployed configuration from the web server 7.0 admin console.
    after that when i open the url
    http://<hostname>/amserver/console
    then Page Not Found error comes in the browser.
    Just wanted to ask you guys am i doing the steps right. please help if someone know how to update and deploy war file on Sun Web server 7.0.
    Thanks & Regards,
    Yash Bansal

    Hi!
    Deploying the configuration does not (re)deploy the application. Webserver stores a copy of the deployed application and all configurations in the admin instance. When you change anything in the webserver console it is first written there and only applied to the productive instance when you deploy configuration.
    When you add images, jsps or something else to /opt/SUNWam/... and want it redeployed you have to use amconfig command. in /opt/SUNWam/bin there is a file called amsamplesilent. You have to fill the values in this file and then use
    ./amconfig -s amsamplesilent
    I believe for a redeploy you have to set DEPLOY_LEVEL to 21, not sure here, check documentation.
    I personally usually do not redeploy for images and such, I simply copy them directly the deployed location.
    Why http://.../amserver/console does not work anymore, I have no idea. But at least after a redeploy it should be there again.
    hth Chris

  • Workflow Custom Activity / Set

    Hi,
    I followed the guidelines from "Create a Logging Custom Activity and Deploy it to the FIM Portal"
     https://msdn.microsoft.com/en-us/library/ff859524.aspx?f=255&MSPPError=-2147217396
    and it worked fine with a workflow MPR. I can see the type of the operation performed and the resource attributes that changed.
    Now, when I use it on a Set MPR I don´t have the same information. Should I use a workflow MPR for that? I mean to know if a resource in that set had an attribute value change?
    Many, many thanks,
    DD

    The custom logging activity uses a request MPR to fire the logging workflow upon an attribute update. You can use a set transition MPR to fire workflows when a resource transitions into or out of a set.
    Cheers,
    Tom Houston, UK Identity Management Practice

Maybe you are looking for

  • How do i save photos from iPhoto to jpeg

    when i import photos from my camera they save in the iphoto section but how do I then save those as jpeg files so that i can upload them to emails or to kodal gallery etc.

  • Change visible property of iView assigned to page

    Hi, When we add an iView to a page, we have some properties like visible, fixed,etc. mentioned along with each iView. Now, I want to change the visible property dynamically using pdk development. How can we achieve this? Regards, Khushboo

  • What is 'core' file in bdump?

    hi, what the file named 'core' is in bdump directory? How can i open it? Thanks.

  • If you feel your iPad running would that be a problem?

    If you feel the iPad running is that a problem?

  • Export camera

    hi i am doing a little 1 second transition using a camera which swings around to swipe on a video layer. everything looks good in the projects but when I come to expor all i get is the background - no video have tried chanig my in/out etc and export