K2 Blackpoint Blackpearl – How to update a Sharepoint list items using common meta data

By peter.stilgoe









In a K2 Sharepoint process you will quite often have to update the same piece of meta data in multiple locations ie. you have a status column which is part of the list your process is attached to but you may need to reflect this status update on another list item in another list for reporting purposes or something similar. Your lists will need to have a common piece of metadata like a ‘reference number’ or something similar in order for you to return the List IDs’.

You can do this fairly easily using the ‘Sharepoint Search’ event wizard in K2.

- Drop the Sharepoint Search Event wizard on to your design canvas

- Choose ‘Search in a Sharepoint List or Library’ this will just search the specific list your point it at

- Add the URL of the Sharepoint site where the list resides & pick the list you want to search

- Now specify you search parameters ie

Content Type: Order

Field: Reference Number

Operator: Equal

Value: Order Number (This column exists on your other list ie. the one attached to your existing process)

This is now searching your list for a reference number that matches the order number on your original list.

- Create a content field in order to store the results on the next screen

- Finish the process and save

- Now if you go into your process explorer you can browse your new content field that will contain the List ID of your item everytime your search event fires

ie. Object Browser –> XML Fields –> ‘Process Name’ –> ‘Content Field Name’ –> Items –> Item –> Item (This contains the List Item ID of the item you wish to update on the other list)

ps: I wrote this in a hurry which is probably apparent!

Share

Leggi tutto

How to delete a corrupted Sharepoint list

By peter.stilgoe









Sometime you will find you have a currupted list that you cant delete through the normal way as when you try & access the list or the list settings the webpage throws errors. In this case use STSADM

stsadm.exe -o forcedeletelist -url http://devapp01/Lists/<MyListName>/




Share

Leggi tutto

Merging documents into a single document using Open XML SDK 2.0 and Word Automation Services

By peter.stilgoe









The code below will create a webpart that can be added to any document library, when the button ‘Merge Reports’ is clicked it will merge all the documents together in the library in to a single document using Open XML SDK & Word Automation Services.

You will need to add the following references:

DocumentFormat.OpenXml
Microsoft.Office.Word.Server
Microsoft.Sharepoint
Microsoft.Sharepoint.Client
Microsoft.Sharepoint.Client.Runtime
Windows.Base

using System;
using System.ComponentModel;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using Microsoft.SharePoint;
using System.Linq;
using System.IO;
using DocumentFormat.OpenXml.Packaging;
using DocumentFormat.OpenXml.Wordprocessing;
using System.Text;
using Microsoft.SharePoint.Client;
using ClientOM = Microsoft.SharePoint.Client;
using Word = Microsoft.Office.Word.Server;
using Microsoft.Office.Word.Server.Conversions;

namespace DocumentMerge.VisualWebPart1
{
    [ToolboxItemAttribute(false)]
    public class VisualWebPart1 : WebPart
    {
        // Visual Studio might automatically update this path when you change the Visual Web Part project item.
        private const string _ascxPath = @"~/_CONTROLTEMPLATES/DocumentMerge/VisualWebPart1/VisualWebPart1UserControl.ascx";

        protected override void CreateChildControls()
        {
            System.Web.UI.Control control = Page.LoadControl(_ascxPath);
            Controls.Add(control);
            base.CreateChildControls();
            Button btnSubmit = new Button();
            btnSubmit.Text = "Merge Reports";
            btnSubmit.Click += new EventHandler(OnSubmitClick);
            Controls.Add(btnSubmit);
        }

        void OnSubmitClick(object sender, EventArgs e)
        {
            // String to store the output path
            string outputPath = string.Format(@"{0}/masterreport-{1}.docx", SPContext.Current.RootFolderUrl, DateTime.Now.ToString("ddMMyyyy"));

            // String containing the blank document part for our new DOCX
            string strEmptyMainPart = "<?xml version='1.0' encoding='UTF-8' standalone='yes'?>" +
            "<w:document xmlns:w='http://schemas.openxmlformats.org/wordprocessingml/2006/main'>" +
            "<w:body><w:p><w:r><w:t></w:t></w:r></w:p></w:body></w:document>";

            // In-memory stream for our consolidated WSR DOCX.
            MemoryStream memOut = new MemoryStream();

            // Out output document's OpenXML object
            WordprocessingDocument outputDoc = WordprocessingDocument.Create(memOut, DocumentFormat.OpenXml.WordprocessingDocumentType.Document);

            MainDocumentPart mainPart = outputDoc.AddMainDocumentPart();

            Stream partStream = mainPart.GetStream();
            UTF8Encoding encoder = new UTF8Encoding();

            // Add our blank main part string to the newly created document
            Byte[] buffer = encoder.GetBytes(strEmptyMainPart);
            partStream.Write(buffer, 0, buffer.Length);

            // Save the document in memory
            mainPart.Document.Save();

            SPListItemCollection files = SPContext.Current.List.Items;

            int id = 1;
            foreach (SPListItem item in files)
            {
                SPFile inputFile = item.File;

                string altChunkId = "AltChunkId" + id;
                id++;
                byte[] byteArray = inputFile.OpenBinary();

                AlternativeFormatImportPart chunk = outputDoc.MainDocumentPart.AddAlternativeFormatImportPart(AlternativeFormatImportPartType.WordprocessingML,
                    altChunkId);

                using (MemoryStream mem = new MemoryStream())
                {
                    mem.Write(byteArray, 0, (int)byteArray.Length);
                    mem.Seek(0, SeekOrigin.Begin);
                    chunk.FeedData(mem);
                }

                AltChunk altChunk = new AltChunk();
                altChunk.Id = altChunkId;

                outputDoc.MainDocumentPart.Document.Body.InsertAfter(altChunk,
                    outputDoc.MainDocumentPart.Document.Body.Elements<Paragraph>().Last());
                outputDoc.MainDocumentPart.Document.Save();
            }

            outputDoc.Close();

            memOut.Seek(0, SeekOrigin.Begin);

            ClientContext clientContext = new ClientContext(SPContext.Current.Site.Url);
            ClientOM.File.SaveBinaryDirect(clientContext, outputPath, memOut, true);

            // Conversion

            string docPath = string.Format(@"{0}{1}", SPContext.Current.Site.Url.Replace(@"\\", ""), outputPath);
            //string pdfPath = docPath.Replace(".docx", ".pdf");

            ConversionJobSettings JobSettings = new ConversionJobSettings();
            JobSettings.OutputFormat = SaveFormat.Document;
            JobSettings.OutputSaveBehavior = SaveBehavior.AlwaysOverwrite;

            ConversionJob ConvJob = new ConversionJob("Word Automation Services", JobSettings);
            ConvJob.UserToken = SPContext.Current.Site.UserToken;
            ConvJob.AddFile(docPath, docPath);
            ConvJob.Start();

        }
    }
}

Share

Leggi tutto

How to create an Excel Workbook from an SQL database using Open XML SDK 2.0

By peter.stilgoe









Below is the C# code to create a new Excel workbook based on a template file & populated by an SQL database.

You need to add references to:

DocumentFormat.OpenXml
System.Data.Linq
Windows.Base

using System;
using System.IO;
using System.Data;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using DocumentFormat.OpenXml.Packaging;
using DocumentFormat.OpenXml.Spreadsheet;
using DocumentFormat.OpenXml;

namespace ElitetoExcel
{
    class Program
    {
        static string[] headerColumns =
            new string[] { "A", "B", "C", "D", "E"};

        static void Main(string[] args)
        {
            //Make a copy of the template file
            File.Copy(@"c:\templatedoc.xlsx", @"c:\newdoc.xlsx", true);

            //Open up the copied workbook
            using (SpreadsheetDocument myWorkbook =
                SpreadsheetDocument.Open(@"c:\newdoc.xlsx", true))
            {
                //Access the main workbook part which contains all the references
                WorkbookPart workbookPart = myWorkbook.WorkbookPart;

                //Grab the first worksheet
                WorksheetPart worksheetPart = workbookPart.WorksheetParts.First();

                //Sheet data will contain all the data
                SheetData sheetData = worksheetPart.Worksheet.GetFirstChild<SheetData>();

                //Connect to Database LINQ
                DataClasses1DataContext
                DataClasses1DataContext = new
                DataClasses1DataContext();
                int index = 2;

                //select * from SPOpenMatters table
                var MatterQuery = from t in DataClasses1DataContext.SPOpenMatters
                                     select t;

                //For each record in database add row in spreadsheet

                Console.WriteLine("Creating Excel report...........");

                foreach (var item in MatterQuery)
                {
                    string MatterNum = item.matterno;
                    string Description = item.description;
                    string OpenedDate = item.openeddate.ToString();
                    string MatterStatus = item.matterstatus;
                    string BillingTKPR = item.billingTKPR;

                    //Add a new row
                    Row contentRow =
                        CreateContentRow(index, MatterNum, Description, OpenedDate, MatterStatus, BillingTKPR);
                    index++;

                    //Append new row to sheet data
                    sheetData.AppendChild(contentRow);
                }
                worksheetPart.Worksheet.Save();
            }
        }

        private static Row CreateContentRow(int index, string MatterNum, string Description, string OpenedDate, string MatterStatus, string BillingTKPR)
        {
            //Create new row
            Row r = new Row();
            r.RowIndex = (UInt32)index;

            //First cell is a text cell, so create it and append it
            Cell firstCell =
                CreateTextCell(headerColumns[0], MatterNum, index);
            r.AppendChild(firstCell);//

            //create cells that contain data
            for (int i = 1; i < headerColumns.Length; i++)
            {
                Cell c = new Cell();
                c.CellReference = headerColumns[i] + index;
                CellValue v = new CellValue();
                if (i == 1)

                    v.Text = Description.ToString();

                if (i == 2)
                    v.Text = Convert.ToDateTime(OpenedDate).ToString("D");

                if (i == 3)
                    v.Text = MatterStatus.ToString();

                if (i == 4)
                    v.Text = BillingTKPR.ToString();

                c.AppendChild(v);
                r.AppendChild(c);

            }
            return r;
        }

        private static Cell CreateTextCell(string header,
            string MatterNum, int index)
        {
            //Create a new inline string cell
            Cell c = new Cell();
            c.DataType = CellValues.InlineString;
            c.CellReference = header + index;

            //Add text to text cell
            InlineString inlineString = new InlineString();
            Text t = new Text();
            t.Text = MatterNum;
            inlineString.AppendChild(t);
            c.AppendChild(inlineString);
            return c;
        }
    }
}

Share

Leggi tutto

Asana

By peter.stilgoe









So what exactly are we up to at Asana? Here’s a peek at what we’re building and why:

We’re starting by building collaborative task and project management software. It will be free of charge, delivered over the Web, and initially suitable for both individuals and <50 person teams/companies.

In managing and contributing to projects in the past (at Facebook, Google, etc.), we felt frustrated by how much time we spent trying to stay on the same page with everyone (making sure teammates have the information they need, figuring out what everyone’s working on, clarifying priorities, …) and doing “work about work” (progress report emails, meetings, …). We’ve tried email, wikis, whiteboards, Microsoft Project, Google Docs, you name it, and while these are great for lots of things, we found everything suffered from one or both of:
•They’re too cumbersome for personal private task management. Everybody’s got a text file or sticky note that’s the actual source of truth, and then every organization we’ve seen has an explicit guilt-trip-based synchronization process along the lines of “go update the wiki.” You can’t trust what’s in the shared system, so you still have to interrupt the person when you need to coordinate.

We’re focused on making Asana really fast, at both the technology level (Lunascript makes apps responsive in a way that hasn’t been done on the Web before) and the product level (detailed attention to users accomplishing goals in the minimum number of keystrokes). The experience has to be at least as fast as Notepad, so fast that you’d use it for your own task management even if there weren’t a collaborative component.

•Existing solutions either impose too much structure, and the inflexibility drives people back to email, or they don’t handle structure. You can allude to structure in wikis by bolding headings, but if you want to see one view of the data at your desk, a different view in the team meeting, and milestone roll-ups at the executive meeting, you have to copy-paste manually, because blobs are not queryable data. You can’t subscribe to notifications about changes to an individual row in a spreadsheet. You can’t have a discussion thread in the middle of a document without creating a mess and losing the forest for the trees.

In Asana, you can tag tasks in multiple ways (e.g. by assignee and by project). If you rearrange priorities during the team meeting, team members’ individual task lists will reflect that when they get back to their desks. If a task I care about or am waiting on gets completed, my news feed notifies me, without someone needing to separately remember to email me. By understanding the structure and semantics of the data, Asana knows what info you need, and makes communication an emergent side-effect of keeping yourself organized.

Keeping groups of people organized is a problem at the heart of every organization. That’s why we’re focused on delivering a real solution with features like full text search, news feeds, per-task walls (comments + feed), infinite undo, version control, advanced sharing and privacy models, a bidirectional email bridge, LDAP integration, offline support, recurring tasks, “remind me later,” task dependencies, mobile, workflows, and visualizations (e.g. an editable Gantt chart view). Unlike heavy-duty enterprise suites we’ve tried, we’re focused on making these features fast, easy, and even enjoyable to use.

Longer term, project management is a beachhead into solving a larger set of organizations’ information management needs. Today people use separate tools for each kind of data they manage: applicant tracking, CRM, support ticket management, discussion threads, bug tracking, etc., but also one-off spreadsheets or Rails apps companies have contractors build from scratch because they have one more kind of data.

Each tool reinvents UI for managing structured records. They reinvent sharing models and access control lists. They reinvent notification and subscription — but whether a task was reassigned or a meeting moved or a ticket advanced, I want to hear about it in a single feed (and then slice and dice that feed, or see the feed for a certain project or coworker). Some tools support search, but you can’t search across your emails, docs, and customer records at once. Some tools include tagging, but there’s no unified notion of a project, where joining the team puts you on the right meetings and grants access to the right task lists and document repositories.

Asana’s task management app is a content management system for one particular kind of structured data. But we’re building it on a general structured data management platform, which we’ll leverage first to launch more applications, and ultimately to allow users and third-party developers to create custom schemas, workflows, and interfaces, all integrated with a single common data model.

Asana Open House from Jerry Phillips on Vimeo.

www.asana.com

Share

Leggi tutto

Sharepoint 2010 Content Type Hub Error – No valid proxy can be found to do this operation

By peter.stilgoe









If you have changed your URL for your Sharepoint 2010 farm you will get the error:

‘No valid proxy can be found to do this operation’

when trying to publish new content types from the content type hub.

This is because the URL in the managed meta data service application needs to be updated to reflect the new URL change. You can do this by running the following Powershell script:

Set-SPMetadataServiceApplication -Identity "Managed Metadata Application" -HubURI "http://NewSharepointURL"

Share

Leggi tutto

Creating custom reports using K2 Blackpoint and ADO.net

By peter.stilgoe









In K2 Blackpearl you have access to a K2 Report Designer making it fairly easy to create custom reports, however in Blackpoint there is no report designer. The good news is you can still create custom reports by creating a new Web Application in Visual Studio & using the ADO.net provider that ships with Blackpoint for interacting with Smartobject data.

“K2 blackpoint ships with an ADO.net provider for interacting with SmartObjects. This includes any SmartObjects that you create against SharePoint content, Workflow SmartObjects that you can configure when designing your process, as well as some pre-configured reporting SmartObjects which are used by the out of the box reports in the process portal.

The ADO.net provider allows you to build ASP.net forms as well as SQL Reporting Services reports in much the same way as you would use any other ADO.net provider.

Today I will show you the ASP.net example. The recording attached to this post also discusses using the ADO.net Provider in a SQL Reporting Services report. The configuration of the data source is similar for ASP.net and SQLRS.

For this example I have created a basic web page project. There are 2 things that you will need to configure to ensure that your ASP.net page works properly with the data provider”

Read more Creating Custom Reports With K2 Blackpoint

Share

Leggi tutto

Word Automation Services – Convert a Word 2010 Doc to PDF

By peter.stilgoe









The following example provides the complete C# listing for the simplest Word Automation Services application

You need to add references to WindowsBase, Microsoft.Office.Word.Server & Microsoft.Sharepoint

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.SharePoint;
using Microsoft.Office.Word.Server.Conversions;

class Program
{
    static void Main(string[] args)
    {
        string siteUrl = "http://localhost";
        // If you manually installed Word automation services, then replace the name
        // in the following line with the name that you assigned to the service when
        // you installed it.
        string wordAutomationServiceName = "Word Automation Services";
        using (SPSite spSite = new SPSite(siteUrl))
        {
            ConversionJob job = new ConversionJob(wordAutomationServiceName);
            job.UserToken = spSite.UserToken;
            job.Settings.UpdateFields = true;
            job.Settings.OutputFormat = SaveFormat.PDF;
            job.AddFile(siteUrl + "/Shared%20Documents/Test.docx",
                siteUrl + "/Shared%20Documents/Test.pdf");
            job.Start();
        }
    }
}

Share

Leggi tutto

Modifying an Open XML Document in a SharePoint Document Library

By peter.stilgoe









C# Console Application code to query a Sharepoint Library, Open a document, Make a change & then save the document.

You need references to WindowsBase.dll, Microsoft.Sharepoint & DocumentFormat.OpenXml

You also need to ensure your project is .Net 3.5 & set to target ‘Any CPU’ in the project properties.

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading;
using Microsoft.SharePoint;
using DocumentFormat.OpenXml.Packaging;
using DocumentFormat.OpenXml.Wordprocessing;

class Program
{
 static void Main(string[] args)
 {
 string siteUrl = "http://localhost";
 using (SPSite spSite = new SPSite(siteUrl))
 {
 Console.WriteLine("Querying for Test.docx");
 SPList list = spSite.RootWeb.Lists["Shared Documents"];
 SPQuery query = new SPQuery();
 query.ViewFields = @"<FieldRef Name='FileLeafRef' />";
 query.Query =
 @"<Where>
 <Eq>
 <FieldRef Name='FileLeafRef' />
 <Value Type='Text'>Test.docx</Value>
 </Eq>
 </Where>";
 SPListItemCollection collection = list.GetItems(query);
 if (collection.Count != 1)
 {
 Console.WriteLine("Test.docx not found");
 Environment.Exit(0);
 }
 Console.WriteLine("Opening");
 SPFile file = collection[0].File;
 byte[] byteArray = file.OpenBinary();
 using (MemoryStream memStr = new MemoryStream())
 {
 memStr.Write(byteArray, 0, byteArray.Length);
 using (WordprocessingDocument wordDoc =
 WordprocessingDocument.Open(memStr, true))
 {
 Document document = wordDoc.MainDocumentPart.Document;
 Paragraph firstParagraph = document.Body.Elements<Paragraph>()
 .FirstOrDefault();
 if (firstParagraph != null)
 {
 Paragraph testParagraph = new Paragraph(
 new Run(
 new Text("Test")));
 firstParagraph.Parent.InsertBefore(testParagraph,
 firstParagraph);
 }
 }
 Console.WriteLine("Saving");
 string linkFileName = file.Item["LinkFilename"] as string;
 file.ParentFolder.Files.Add(linkFileName, memStr, true);
 }
 }
 }
}

Code written by Eric White

Share

Leggi tutto

Sharepoint Object Model C# Error The Web Application at could not be found. Verify that you have typed the URL correctly

By peter.stilgoe









When running some C# code containing a reference to SPSite ie

        string siteUrl = "http://devapp01/";
        using (SPSite spSite = new SPSite(siteUrl))

I was getting the following error:

The Web Application at could not be found. Verify that you have typed the URL correctly. If the URL should be serving existing content, the system administrator may need to add a new request URL mapping to the intended application.

Looking at various forums people have spent along time troubleshooting this problem, in my case it was easily fixed by:

Go to Project Properties -> Build -> Target Platform -> Make it Any CPU (default is x86)

Share

Leggi tutto

How to auto populate Word template using Open XML SDK 2.0

By peter.stilgoe









Here is some simple code that updates a word document template that contains 2 content controls in the template document called:

MatterNumber
DocType

The template document is – C:\Users\stilgoep\WordTest\test-contentcontrol.docx

The output document is – C:\Users\stilgoep\WordTest\test-contentcontrol-updated.docx

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using DocumentFormat.OpenXml;
using DocumentFormat.OpenXml.Packaging;
using System.Xml;
using System.IO;

namespace BasicOpenXMLUpdater
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Starting up Word template updater ...");

            //get path to template and instance output
            string docTemplatePath = @"C:\Users\stilgoep\WordTest\test-contentcontrol.docx";
            string docOutputPath = @"C:\Users\stilgoep\WordTest\test-contentcontrol-updated.docx";

            //create copy of template so that we don't overwrite it
            File.Copy(docTemplatePath, docOutputPath);

            Console.WriteLine("Created copy of template ...");

            //stand up object that reads the Word doc package
            using (WordprocessingDocument doc = WordprocessingDocument.Open(docOutputPath, true))
            {
                //create XML string matching custom XML part
                string newXml = "<root>" +
                    "<MatterNumber>00011111</MatterNumber>" +
                    "<DocType>Contract</DocType>" +
                    "</root>";

                MainDocumentPart main = doc.MainDocumentPart;
                main.DeleteParts<CustomXmlPart>(main.CustomXmlParts);

                //add and write new XML part
                CustomXmlPart customXml = main.AddCustomXmlPart(CustomXmlPartType.CustomXml);
                using (StreamWriter ts = new StreamWriter(customXml.GetStream()))
                {

                    ts.Write(newXml);
                }

                //closing WordprocessingDocument automatically saves the document
            }

            Console.WriteLine("Done");
            Console.ReadLine();

        }
    }
}

You need to add the following 2 references:

DocumentFormat.OpenXml
WindowsBase.dll

You will also need to download the Word Content Control Toolkit from CodePlex to map your content controls to your XML data.




Share

Leggi tutto

Passing K2 parameters into your K2 Report URLs

By peter.stilgoe









If you want / need to provide direct links to specific K2 reports without having to prompt the users to input various parameters ie dates etc you can by passing directly into your K2 report url.

The parameters below can be passed in:

a. FullName: Folder\ProcessName
b. Version: int_Version
c. ValueType: 0 to have average duration, 1 to have the instance numbers
d. FromDate: start date for the report YYYY/MM/DD
e. ToDate: end date for the report YYYY/MM/DD
f. Status: 2 for Active, 4 for Completed
g. EventType: 0 for all events, 1 to exclude Server Events

So an example url passing the above parameters in a K2 Blackpoint environment would look something like this:

http://my-server/sites/abc-corp/k2process/_layouts/K2/Reports/ActivityStatistics.aspx?ReportID=3&ProcessFullName=NewMatter\New Matter&Version=26&ValueType=1&FromDate=2011/03/01&ToDate=2011/03/07&Status=4

Share

Leggi tutto

Page cannot be found when trying to view a K2 Sharepoint Workflow Integration Task

By peter.stilgoe









If you are creating a K2 Blackpearl / K2 Blackpoint process using the ‘Sharepoint Workflow Integration Client’ and when trying to open a particular task item to complete it & you get a ‘page cannot be found’ error in you web browser, its probably because the task title in your workflow contains a ‘&’ char.

Replace ‘&’ with ‘and’ or something and you will be able to view & complete your K2 task as expected.

Share

Leggi tutto

When trying to view K2 Blackpoint Blackpearl report error: ‘Microsoft.ReportViewer.WebForms The system cannot find the file specified

By peter.stilgoe









When trying to view a K2 Blacpoint or Blackpearl report in a process portal you get the following error:

An error has occurred trying to load the settings for the report. N/A:Could not load file or assembly ‘Microsoft.ReportViewer.WebForms, Version=9.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a’ or one of its dependencies. The system cannot find the file specified.

In my case the reason was that I needed to install the Microsoft Report Viewer Redistributable 2008 on my server(s). Once installed do an IISreset & all reports should render as expected.

Share

Leggi tutto

K2 Process Never Deploys From K2 Studio

By peter.stilgoe









Had a strange problem on our K2 Dev Server where all of a sudden we could not deploy any K2 processes, old or new. Basically we would click deploy & it would never complete, the deployment would appear to be happening but if you looked at the K2studio.exe in process monitor it wasnt using any processor resources after the 1st second or so ie 0% processor usage.

If you then looked at C:\Users\MyUserName\Documents\K2Studio\K2Project1\obj\Debug\my-project-my-process.exe you would see that its file size would always be 0k.

After logging a call with K2 a spending a few hours troubleshooting it turned out to be something corrupt with my userprofile on the K2 Server. Once we deleted my profile & then recreated it we could then deploy K2 processes as expected.

Hopefully this will help someone with similar problems deploying K2 Blackpoint or K2 Blackpearl processes.

Share

Leggi tutto