Workflow approval/staging/production howto

Hi
I am trying to setup a workflow where in any page added or edited in site studio designer/contributor will have to be first sent to an approving group, then to a staging environment and only then published. I am going through the workflow administrator but nothings getting me started in tha baove mentioned direction. Will be great help if anybody can give me some sort of a starting step in this direction
Regards

In the standard approval process the email is send to the Approver, not an administrator. You need to maintain the Approver for each step of the process.
If an approver or a group of approvers is maintained correctly, than go to System Administration > System Configuration > Knowledge Management > Content Management and in the config iView go to Utilities > Channels > E-mail Channel and check if the config object EMAIL contains the correct mail server address.
If it is correct check if the Mailing Service and the Notificator Service (at Global Services (advanced!)) are set to active. And if the Notificator Service has the channel EMAIL configured.

Similar Messages

  • Some Users cannot Open Workflow Approval Task

    We have a SPD workflow published to our production site and it includes a 'Start Approval Process' task which involves a number of users (determined by a lookup to another list) this worked brilliantly until we republished the workflow with some minor changes,
    none of which were to this particular approval task. Now we are seeing some strange behaviours. When some users click the task to approve they are seeing 'This from cannot be opened in a browser, To open this form use Microsoft Infopath'. Now strangely it's
    only certain users, if you're a site collection admin you never have this error. So if a user previously had the error and i then add them to the site collection administrators list the error goes away and they can complete the task.
    Obviously not a solution! giving users full control permissions on the task list or task item doesnt fix the error either. The same workflow on our UAT works without any issues. The task forms in SPD have not been customised either. Its a SP2010 Standard
    farm with no infopath services obviously. Bizarrely there are some users with only Contribute rights to the task list who can open approve tasks, so it's looking like a permissions issue to me but I'm at a loss to find a fix. I've tried totally removing
    the worklows and republishing, regenerating the .xsn task forms in SPD by deleting them and republishing, removing and re-adding the task related content types to site, Changing the Approval Task settings 'only allow users to edit their tasks...' to false
    and then back to true, the works, but to no avail.
    Anybody any ideas?
    TIA
    Chris

    Hi,
    According to your post, my understanding is that Some Users cannot Open Workflow Approval Task.
    I recommend that you can create a new list and workflow to check whether it works.
    Then use the user who get the error to open task.
    If he can open the task in the brower, the issue is related to the older list.
    Then you can use the new created list and assgin the task.
    Here is a similar thread for your reference:
    https://social.msdn.microsoft.com/Forums/en-US/67dc8577-f248-4d6c-bb82-3aca0f084d24/this-form-cannot-be-opened-in-a-web-browser-error-not-an-infopath-form?forum=sharepointcustomizationprevious
    Thanks,
    Linda Li                
    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]
    Linda Li
    TechNet Community Support

  • Best practices for deployment from Dev /Staging /Production in SharePoint ?

    Hi All,
    What is a best practices to deploy SharePoint Portal to dev / staging / Production.
    I have custom solution deployed using WSP file. But I have done some changes using sharepoint designer.
    Like as Designer workflow, master pages etc.
    How can I deploy my document libraries and list to dev to prod using best practices?
    Thanks
    Balaji More

    Hi,
    According to your post, my understanding is that you wanted to know the best practices to deploy SharePoint Portal in different SharePoint environment.
    If the site is not existing in the production server, we can save the site from the development server, and then import it to the production server.
    But if the site is already existing in the production server, we should follow these steps to just add the taxonomy and content types to the production server:
    Save the site from Dev as a template
    Import the template as solution in Visual Studio
    Remove unnecessary items from the solution(Please pay more      attention on it. If a content type/list... in the solution is existing in      the production site too, it will replace the
    same object existing in the      production after deployment)
    Package the solution
    Deploy the solution in the production
    For more detailed, please see:
    http://ahmedmadany.wordpress.com/2012/12/30/importing-sharepoint-solution-package-wsp-into-visual-studio-2010/
    There is a similar thread for your reference.
    http://social.technet.microsoft.com/Forums/en-US/7dcf61a8-1af2-4f83-a04c-ff6c439e8268/best-practices-guide-for-deploying-sharepoint-2010-from-dev-to-test-to-production?forum=sharepointgeneralprevious
    Thanks & Regards,
    Jason
    Jason Guo
    TechNet Community Support

  • Project environments (development, staging, production) and modular application development

    Hey,
    seeing the early status for the Module/Integration-libraries, have any of you already derived a way to handle team-development for modular projects? Especially with different environments for the application to run in, requiring parameters (like the server to communicate to) to be dependent on the environment.
    My "perfect solution" would include local development using Flash Builder 4 and the integrated facilities to run an application as a "Web application" using an embedded Tomcat in Flash Builder 4 as the backend to the UI/Flex project as well as staging/production environments where the compiled flex-project resides on the same machine as the backend that it's talking to.
    Basically my question has two parts:
    How do you configure your application (if at all) to change central parameters for your application according to the environment (e.g. the server url, or the path to modules which are loaded at runtime)
    How do you integrate that into the local Flash Builder workflow, which launches your application using a local URL
    I'd love to hear your experiences with this, I'll report back if I established a structure I think worth sharing
    best Jonas
    P.S.: we're using Maven/Hudson for building and continuous integration, too, so those have some requirements themselves

    What we do usually is the following :
    * we have a <contextRoot>${my.web.context}</contextRoot> parameter in the flex app  pom.xml file
    * we have linked resources in FlashBuilder to target and compile in the local webapp deployement folder

  • How to use a pwa group in CREATE A TASK PROCESS in SPD 2013 for project server workflow approval process

    I am working on a Project Server 2013 workflow. I am creating this using Sharepoint Designer 2013. In this workflow I am using approval process at one stage. I have created a security group SalesManagers in PWA. I want to use this group for workflow approval
    process. I want all users of this group get approval tasks. 
    For this I used START A TASK PROCESS activity in the SP Designer. I clicked on
    this user and created task process. But here I could not find SalesManager group which I created in PWA. I was only able to find the users. I can also see
    Administrators for PWA . But couldnot find SalesManager or any other security group created in pwa.
    Can anyone suggest how I can get the security group created in pwa.

    NBDevelopment,
    I believe SPD only recognizes the SharePoint Groups and not the project server security groups.
    The Administrators for PWA, and few other groups like Project Managers for PWA etc., are synced SharePoint Groups with the security groups, which is why they show up in SPD.
    You could create a SharePoint Group for the Sales Managers group and use that in SPD.
    Cheers,
    Prasanna Adavi, Project MVP
    Blog:
      Podcast:
       Twitter:   
    LinkedIn:
      

  • Reminder mail for workflow approval

    Hi All,
    We have a scheduled task which sends Reminder mails for workflow approval which has been pending for more than 5 days.
    Recently I created new workflow definitions and reminder task stopped sending mails.
    I checked task and it has IapiTaskIfc Class com.frictionless.custom.wkfreminder.sendWorkflowReminder.
    How to check this class and do i need to make changes somewhere else to send reminder mails?
    Regards,
    Prabhat

    Hi Prabhat,
    I am working on creating a scheduled task for sending reminder emails. I need help on IapiTaskIfc Class com.frictionless.custom.wkfreminder.sendWorkflowReminder. Can you please share sendWorkflowReminder class to me, so that I can get idea about the code written for sending reminder emails? It would be great help.
    To check the class, you need to get the jar from server and decompile it. You can get some idea by looking at the java class file then.
    Thanks,
    Saloni

  • How to call workflow approve service in loop for multiple documents.

    i have created a serviceHandler for approving the document and i post the comma separated dIDs as a string from workflow approval template(custom template). And in serviceHandler program i pass the did for approving and only first document is approved and for other document its throwing error, Its showing error document revision is not a latest revision but document is having only one revision.
    my code is: can anyone help me.
    public void SendAllDocuments()
            throws DataException, ServiceException{
        try{
        String [] ContentDids;
        System.out.println("+++++++here we are the all SendAllDocuments++++++++++++++");
        String workflowIds = m_binder.getLocal("workflowIds");
        if(!workflowIds.isEmpty()){
             ContentDids = workflowIds.split("\\,");
        }else{
            throw new ServiceException("document are not selected from users, workflowIds"+workflowIds);
        int arrayLength = ContentDids.length;
        for(int iterator=0;iterator<=arrayLength-1;iterator++){
            SendDocumentToUserQueue(ContentDids[iterator]);
        }}catch(Exception e){ e.printStackTrace();}
        m_workspace.releaseConnection();
    //DocMeta table varible which are coming from Internal assignment page
    //xWF_SentFrom",xWorkflowStepAlias",xWF_SendTo",xPurposeForSubmission",xPurposeForRejection",xDocApproval",xWorkflowComments"
    //xInternalAssignment",togroup",xWF_SendToSend",xWF_SendToSend12",xPurposeForSubmissionSend",xWF_SendToApprove",wfSendApproveComments"
    //Revision table variable which can get from getRevisionsTableValueFromDid
    // dDocName", dDocType",dRevLabel",dSecurityGroup",dDocAccount"
    public void SendDocumentToUserQueue(String approvalId) throws DataException, ServiceException{
        try{
            DataResultSet resultset =getRevisionsTableValueFromDid(approvalId);
            String sendToName = m_binder.getLocal("sendToName");
            String sender="takuma";
        //String workflowComments = m_binder.getLocal("workflowComments");
        String workflowReason = m_binder.getLocal("workflowReason");
        m_binder.putLocal("IdcService", "WORKFLOW_Approve");
        m_binder.putLocal("idcToken", m_binder.getLocal("idcToken"));
        m_binder.putLocal("dID", approvalId);
        m_binder.putLocal("xWF_SendTo", sendToName);
        m_binder.putLocal("xPurposeForSubmission","108");
        m_binder.putLocal("xWF_SentFrom", sender);
        m_binder.putLocal("xWorkflowStepAlias", "");
        m_binder.putLocal("xPurposeForRejection", "");
        m_binder.putLocal("xDocApproval", "");
        m_binder.putLocal("xWorkflowComments", "");
        m_binder.putLocal("xInternalAssignment", "");
        m_binder.putLocal("xWF_SendToSend", "");
        m_binder.putLocal("dDocName", getData(resultset,"dDocName"));
        m_binder.putLocal("dDocType", getData(resultset,"dDocType"));
        m_binder.putLocal("dRevLabel", getData(resultset,"dRevLabel"));
        m_binder.putLocal("dSecurityGroup", getData(resultset,"dSecurityGroup"));
        m_binder.putLocal("dDocAccount", getData(resultset,"dDocAccount"));
        executeService(m_binder, sender);
    }catch(Exception e){ e.printStackTrace();}
    public DataResultSet getRevisionsTableValueFromDid(String documentId) throws DataException, ServiceException{
        DataResultSet drs = new DataResultSet();
        try{
            /*String sqlDocType="select dDocType from revisions where dId ='"+documentId+"'";
        ResultSet documentRset = getSystemWorkspace().createResultSetSQL(sqlDocType);
        //handle null pointer exception for DocumentValue
        String DocumentValue = ResultSetUtils.getValue(documentRset, "dDocType");*/
        String sql="select dDocName,dDocType,dRevLabel,dSecurityGroup,dDocAccount from Revisions where dId ='"+documentId+"'";
        ResultSet rset = getSystemWorkspace().createResultSetSQL(sql);
        if (rset == null || rset.isEmpty()) {
            SystemUtils
                    .info("Resultset is null please check database query and Did ="+documentId);
        drs.copy(rset);
        catch(Exception e){
            System.out.println("in catch of getRevisionId Method");
            e.printStackTrace();}
        //handle null pointer exception for DocumentValue       
        return drs;       
    public String getData(DataResultSet dataSet, String value) {
        String fieldValue = "";
        fieldValue = ResultSetUtils.getValue(dataSet, value);
        System.out.println(fieldValue+"value is null in getData Method=======");
        return fieldValue;
    public UserData getFullUserData(String userName, ExecutionContext cxt,
            Workspace ws) throws DataException, ServiceException {
        if (ws == null)
            ws = getSystemWorkspace();
        UserData userData = UserStorage.retrieveUserDatabaseProfileDataFull(
                userName, ws, null, cxt, true, true);
        //ws.releaseConnection();
        return userData;
    public Workspace getSystemWorkspace() {
        Workspace workspace = null;
        Provider wsProvider = Providers.getProvider("SystemDatabase");
        if (wsProvider != null)
            workspace = (Workspace) wsProvider.getProvider();
        return workspace;
    public void executeService(DataBinder binder, String userName)
            throws DataException, ServiceException {
        // obtain a connection to the database
        Workspace workspace = getSystemWorkspace();
        // check for an IdcService value
        String cmd = binder.getLocal("IdcService");
        if (cmd == null)
            throw new DataException("!csIdcServiceMissing");
        // obtain the service definition
        ServiceData serviceData = ServiceManager.getFullService(cmd);
        if (serviceData == null)
            throw new DataException(LocaleUtils.encodeMessage(
                    "!csNoServiceDefined", null, cmd));
        // create the service object for this service
        Service service = ServiceManager.createService(serviceData.m_classID,
                workspace, null, binder, serviceData);
        // obtain the full user data for this user
        UserData fullUserData = getFullUserData(userName, service, workspace);
        service.setUserData(fullUserData);
        // binder.m_environment.put("REMOTE_USER", userName);
        ServiceException error = null;
        try {
            // init the service to not send HTML back
            service.setSendFlags(true, true);
            // create all the ServiceHandlers and implementors
            service.initDelegatedObjects();
            // do a security check
            service.globalSecurityCheck();
            // prepare for the service
            service.preActions();
            // execute the service
            service.doActions();
            // doany cleanup
            service.postActions();
            // store any new personalization data
            service.updateSubjectInformation(true);
            service.updateTopicInformation(binder);
        } catch (ServiceException e) {
            varTrueFalse = false;
            error = e;
            SystemUtils.info("exception in second location=" + e);
            e.printStackTrace();
        } finally {
            // Remove all the temp files.       
            service.cleanUp(true);       
        // handle any error
        if (error != null) {
            error.printStackTrace();
            if (binder.getLocal("StatusCode") == null) {
                binder.putLocal("StatusCode", String.valueOf(error.m_errorCode));
                binder.putLocal("StatusMessage", error.getMessage());
            } else {
                throw new ServiceException(error.m_errorCode,
                        error.getMessage());

    I guess it is caused by the fact that some of variables in the binder refer to the first workflow item. My bet would be dDocName.
    Try to find out what's in the binder if you approve the second item from GUI and what's there when you do it from your program. That should give you enough info what you need to change.

  • Workflow approval from mobile in ECC5

    Hi All
      We are already having workflow approval in R/3 where it happening from SAP inbox now my client want to migrate to mobile phone. Its it possible from ECC5 we dont have portal. How to implement it. Do we need to install any 3rd party like sybase or other. The main module is MM and PS and also they should be online always ie latest data should send and should update immediately ie should be syn with R/3. How it can be achieved. And also it should be device independet approval can be happend from iphone or blackbarry. Is any link or note are available to share with our client. Awaiting for your thoughts.
    Regards
    Vijay

    Hi Vijay,
    May be you should check the following WiKi link on SDN.  This might answer some of your questions.
    http://wiki.sdn.sap.com/wiki/display/mobile/SybaseMobileWorkflow
    Hope this helps.
    Best Regards,
    Kranti

  • Self Registration without Company or Workflow approval

    Hello,
    We have NW2004s SP 10.  Is it possible to allow a very simple self registration without using Companies or Workflow approval?  The online help seems to imply that this is possible, but I've tried to configure our Portal as such but nothing shows up on our welcome page. 
    What I've done is the following:
    User Admin UI settings:
    Enable Self-Registration of Guest Users=true
    Display Contact Information Form During Self-Registration = true
    All the rest are set to false/blank or default
    Visual Admin settings:
    Server ->Service -> UME Provider -> ume.logon.selfreg = true
    Thanks,
    T

    You also need to assign the UME Action UME.Selfregister_User to the Everyone group. Use /useradmin to create a UME role called something useful and add the UME action specified.
    Now grant that role to the Everyone group.
    Cheers

  • Redirection not working as expected after workflow approval

    Hi,
    We are migrating our application from Stellent 7.1 to WCC 11g and finding a strange issue in 11g with respect to a functionality that is working perfectly in 7.1.
    We have two services for workflow approval. If the approval is happening from the QA workflow, the service being called is WORKFLOW_APPROVE_SUBMIT_QA and if it is happening from other workflows, the service being called is WORKFLOW_APPROVE_SUBMIT.
    The actions for these two services are the same except the prepareRedirect action as given below:
    1. WORKFLOW_APPROVE_SUBMIT redirects to IdcService=GET_PORTAL_PAGE&Action=GetTemplatePage&Page=WF_INQUEUE_LIST, which displays the workflow assignments for the user from all workflows.
    3:prepareRedirect:IdcService=GET_PORTAL_PAGE&Action=GetTemplatePage&Page=WF_INQUEUE_LIST
    2. WORKFLOW_APPROVE_SUBMIT_QA redirects to IdcService=QA_WORKFLOW_LIST (a custom service written that will display the contents in the user's queue from the QA workflow)
    3:prepareRedirect:IdcService=QA_WORKFLOW_LIST::null
    For WORKFLOW_APPROVE_SUBMIT service, the redirection is happening as expected.
    But, WORKFLOW_APPROVE_SUBMIT_QA service is redirecting to IdcService=GET_DOC_PAGE&Action=GetTemplatePage&Page=HOME_PAGE instead of the specified redirect.
    We tried changing the redirect action for the service WORKFLOW_APPROVE_SUBMIT_QA to IdcService=GET_PORTAL_PAGE&Action=GetTemplatePage&Page=WF_INQUEUE_LIST, but still it is redirecting to the HOME_PAGE.
    Highly appreciate any solution for this issue or any suggestions on the possible cause.
    Thanks,
    Manjusha

    I have version 33.0.1 and i still have this problem, any other help ? Thanks!

  • New-AzureReservedIP : Cannot validate argument on parameter 'Slot'. The argument "MyIP" does not belong to the set "Staging,Production"

    I am trying to reserve an IP address in Microsoft Azure using simple PowerShell cmdlet:
    $reservedIP = "MyIP"
    $location = "West US"
    New-AzureReservedIP – ReservedIPName $reservedIP –Label $reservedIP –Location $location
    I get an error:
    New-AzureReservedIP : Cannot validate argument on parameter 'Slot'. The argument "MyIP" does not belong to the
    set "Staging,Production" specified by the ValidateSet attribute. Supply an argument that is in the set and then try
    the command again.
    Any help?
    Thanks

    Greetings!
    Please try the references below which elaborates on the usage of the cmdlet:
    New-AzureReservedIP
    https://msdn.microsoft.com/en-us/library/azure/dn690120.aspx
    https://msdn.microsoft.com/en-us/library/azure/dn769136.aspx
    Thank you,
    Arvind

  • Workflow Approval for CTS+ for NON ABAP Transport

    Hi
    We have a NW Portal system currently using CTS+ for transport.
    We would like to incorporate a workflow approval for transport across the different landscape (DEV -> TEST -> QA -> PRD) with CTS+. The workflow approval would work in such a way that when someone approves a transport request from DEV->TEST, the Basis Admin will then perform the import to TEST. So this approval will also be needed from TEST -> QA and QA -> PRD.
    Does Solution Manager provide such workflow approval for NON ABAP transport?
    I do hope anyone has such experience to share.
    Thanks.
    Regards
    mike

    Hi Mike
    Yes solution Manager CHARMS or Change request managment functionality uses CTS+ to move the Non ABAP requests
    it uses IBASE as identifier for systems and for more can search sdn
    check this link too
    http://www.sdn.sap.com/irj/sdn/alm-change-management
    Hope it helps
    Regards
    Prakhar

  • ERM - Workflow Approval Configuration in ERM and CUP

    Hi Experts,
    I'm in the midst of configuring the workflow approval for ERM and have some queries.
    I followed the post-installation guide part 1 for ERM on the workflow configuration and have sucessfully done the following:
    1. Verified that the "AE_init_append_data_RE.xml" has been uploaded in CUP with Append option
    2. Verified that request type "RE_ROLE_APPROVAL" with workflow type "RE" exists
    3. Verified that priority "RE_HIGH" with workflow type "RE" exists
    4. Created a workflow initiator for ERM called "ROLE_APPROVAL" in CUP -> Configuration -> Workflow -> Initiator (with the said details as per the post-installation guide)
    5. Created a CAD called "ERM_ROLE_APPROVER" for ERM in CUP -> Configuration -> Workflow -> Custom Approver Determinator (with the said details as per the post installation guide, filling in the necessary URI, uname/pw for admin with UME roles)
    6. Created TWO stages , one stage for the role owner called "ERM_ROLE_APPROV", and one stage for the internal control owner called "ERM_ROLE_APPRO2", both with workflow type "RE" and Approver Determinator "ERM_ROLE_APPROVER" which was created in step 5 earlier.
    7. Created a path for ERM Role Approval Workflow in CUP -> Configuration -> Workflow -> Path, with workflow type "RE", Number of Stages "2", Initiator "ROLE_APPROVER", Active "checked" and I put Stage 1 as "ERM_ROLE_APPROV" and stage 2 as "ERM_ROLE_APPRO2".
    8. Configured the Exit Web Service (followed the details as per the post-installation guide for ERM)
    As my role approval is pretty straight forward (i.e. based on business process attribute defined, with each role owner being responsible for their business process), I did the following:
    1. Create approval criteria "Role Approver for Business Process FI"
    2. For that criteria, I based it on attribute "Business Process"
    3. I clicked on "Assign Approvers" to define who is the approver (i.e. the respective role owner responsible for Process FI)
    4. I defined the condition for this criteria, Condition = AND, Attribute = Business Process, Value = FI
    My queries:
    1. Is the approval criteria which I created in ERM, referring to 1st stage or 2nd stage of the path in CUP?
    2. I'm assuming that for query 1, the approval criteria which I created is for 1st stage (i.e. ERM_ROLE_APPROV), where can I configure the 2nd level approval for the internal control owner (i.e. ERM_ROLE_APPRO2, in the path which I defined in CUP)?
    Thanks!

    Hi Baldwin,
    All workflow paths in CUP are triggered by an Initiator.  Once the request from ERM meets "Initiator" ("ROLE_APPROVAL") requirements in CUP, the request will go to the first stage defined in the respective path. Approvers defined in each stage of the path can approve request. Once the request is approved in CUP, approval information will be sent to ERM and then the role in ERM will be moved to the next stage.
    Best Regards,
    Sirish Gullapalli.

  • Document Parking Workflow approval process in LIV

    Hi all,
    Can please someone let me know what is the role of a functional consultant in getting the workflow approval process setup  for the Document parking in LIV process
    Also, can please send any links are documentation...
    Would be really thankful for any sort of help
    Thanks

    Hi,
    According to your description, it seems that your main issue is about customID paramerter in workflow approval prcess.
    About this, please refer to the two samples:
    http://blog.petegoo.com/2010/08/22/workflow-4-email-approval-sample/
    http://cgeers.com/2010/04/10/windows-workflow-in-asp-net/
    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click
    HERE to participate the survey.

  • Role Expert Workflow Approval Criteria

    Hi,
    I am trying to add workflow approval criteria to Role Expert
    I have gone to the configuration menu -->workflow --> approval criteria
    I have set-up an approval expression 'Functional Area' = Finance. However when I go to search for an approver or alternate approver no results are returned. i have AE approvers set up in UME. Where does Role Expert pull this list of users information from?
    Thanks Gary

    I think you cannot directly change it since some of the roles are associated with your old workflow.
    However, you can contact SAP for the same and ask for the script.
    Regards,
    Faisal

Maybe you are looking for

  • 500 internal server error while opening hello world page

    Hi, I'm learning OAF and I run the "HomePG.xml" but I get a page saying that 'Page cannot be displayed' with 500 internal server error. Can anybody help me out plz??

  • How to reset the value in valueChangeListener

    I would like to reset the value in a component to its earlier value in the valueChangeListener. Here is an example method in the bean: public void valueChangeListener(ValueChangeEvent valueChangeEvent) { Date oldDate = (Date)valueChangeEvent.getOldVa

  • Database options under UCM

    With regard to this thread: Few interesting facts about database under UCM 10g what Oracle database options can be effectively used under UCM? The comprehensive overview of the options can be obtained here: http://www.oracle.com/us/products/database/

  • Similar to dts in Oracle.

    is there any utility in oracle, similar to DTS in sql. where i came import data from csv file to table and schedule tht process to run in intervals. i can do it through load data. but how i will schedule it. Or how i will write a comand line utility(

  • Entering HTML Entity Codes

    I haven't been able to find a way to insert HTML entity codes (specifically, to use em dashes, but other needs arise) through the interface. HTML snippets are intended for something entirely different. Apart from opening published output in an editor