Update IBM Connections Community files - ibm-connections

I am trying to write a simple HTTP PUT command to update a file in an IBM Connections community. I find the syntax of creating a file in a community on IBM Connections wiki. But couldn't locate any information on how to update an existing community file.
To be specific, I know how to update the file in my own collection:
PUT /files/basic/api/myuserlibrary/document/f7064edd-477a-44b7-85a3-d35276e4a362/media
Content-Type=application/binary
X-Update-Nonce=myNonce
Filename=myFile
But couldn't quite figure out how to do similar operation for an existing file in community.
NOTE: I am writing the code in VBA within Excel, using the XMLHTTP reference library to send the HTTP request to the server.

Related

Unable to Open Copied SharePoint Online File via SSIS

OK, so we have written a utility (using Graph API) to allow us to authenticate and access files on our internal SharePoint online sites, to replace previous on-premise WebDav access, and we are having issues with the online files after they have been copied.
In simple terms, using Graph API, the process takes a file path from SharePoint Online, authenticates with the site and if the user has access to the file, copies it to a defined location. This works exactly as it should and the relevant files are correctly copied to the new location. For on-premise files, the location remains unchanged. The online files are copied as we can't find a way to integrate Graph API into SSIS, so the files need to have any permissions removed by copying them somewhere else.
We have an existing SSIS process which previously read from a list of on-premise file locations and imports the data from each Excel file into a SQL database. This worked without issue until we updated the list to include the SharePoint Online copied files. The SSIS process runs under the context of a service account, which also has read/write access to has defined location, but when the SSIS task runs, it returns with the following error:
Error: SSIS Error Code DTS_E_OLEDBERROR. An OLE DB error has occurred. Error code: 0x80004005.
An OLE DB record is available. Source: "Microsoft Access Database Engine" Hresult: 0x80004005 Description: "Cannot update. Database or object is read-only.".
I've obviously searched for this error, and the only suggestions are to set IMEX=1 on the connection, which is already done, and to set DelayValidation = True, again this is already done.
The SSIS process should work the same for both the existing on-premise files as it does for the online ones, but for reasons unknown, the on-premise ones work as expected, but the online ones fail. The file isn't already open elsewhere, it's copied and then the SSIS process attempts to open it, but that's where it goes wrong. I can open the copied file without issue in Excel.
Is there something about SharePoint Online that leaves a lock on a file? Is there something we need to do using Graph API to release the copy from any links to SharePoint? Myself and my colleagues have all looked at this and can't figure out why the copied files don't open.
EDIT: Looking at the context of the SSIS error, it seems the ConnectionString is valid, as is the ExcelFilePath (which matches the Data Source in the former):
ConnectionString: Provider=Microsoft.ACE.OLEDB.12.0;Data Source=\\OUR_SERVER_NAME\ShareName_UAT$\Excel_Macro_Enabled_File.xlsm;Extended Properties="Excel 12.0 MACRO;HDR=NO";
ExcelFilePath: \\OUR_SERVER_NAME\ShareName_UAT$\Excel_Macro_Enabled_File.xlsm
Any ideas or advice gratefully received.
Thanks
Martin
Maybe it's related to Excel protection measures when the source file is originated from the internet?
Sometimes it helps if you open, save and close the file before reading it with ssis (https://stackoverflow.com/a/59865686/5605866)

Visual Studio 2012 Pro C# - how to update xsd for newly created columns in db table

Please bear with me as I give a little history, then I will get to the problem:
I am rewriting a web app in Visual Studio 2012 Professional using C# and SQL Server 2012 Express. I am creating new pages / logic but am reusing the data access objects from the old app, which was written in VS2008 and SQL Server 2008 Express by another developer years ago. I got a backup of the db from the SQL Server 2008 db server and restored into the SQL Server 2012 db server.
Most everything works fine in the new application, but I have recently added a few columns to the Contacts table in SQL Server and now I am stuck at how to update the .xsd and related files for Contacts. When I said that I reused the data access objects from the old app, what I meant was that I simply copied all of the .xsd, .xsc, .xss, .xsx and designer.cs files for Contacts and other objects from the old project (VS2008) to the new (VS2012).
I think all of these .xs* files are auto-generated when you use a data source configuration wizard or something in Visual Studio? The problem is that I just copied the files into the new project to get the code behind working so that I could get and update data. But now I must update these files some how so they may be aware of the newly added columns, and I think I have to, in this new project, add a new Data Source? I don't want to perform surgery by updating the files manually, that could get messy I would think...
I can probably figure out how to add the data source, but my concern is will that process complete successfully considering the existence of the files already? Should I remove all of the .xs* files I copied in and add the datasource so it will recreate all those files again, and with the new columns? What should I do? I have backed up my new project in case something goes terribly wrong, so I can torpedo this project as many times as I need to until I get it right!
Thx in advance and thanks for reading this far.

Kofax project and batch class

Kofax Capture Version 9
I have an existing Project and Batch class that works, built previously by Kofax engineer.
What I need to do is change the script in the project to use a new DB connection. This seemed simple enough.
Using project builder I copied the existing project, altered the script and saved the project. Using Capture Administration I copied the existing batch class and then used Synchronize Kofax Transformation Project and pointed to the new project. All this seemed to work without error.
However the script being executed is the original not my altered one, any guidance would be great.
Make sure you are creating a new batch after publishing your change. The batch class class update function works in very limited scenarios, so I don't generally recommend it.
There are many ways that a database connection might be handled in script. Usually I would expect that a function at the project script level handles the connection and is called from any sub class, but you might want to check any sub classes to make sure they aren't using locally defined connection strings.
Even if you are making a connection in script (which you've now changed), you might also be using product features that use databases. Open Project Settings and check the Databases tab.
If there are relational databases listed, simply change as needed.
If you are actually using "Remote Fuzzy" databases then these might be using Kofax Search and Matching Server which connects to a relational database to build the fuzzy db. In this case you would need to use KSMS Admin to change the connection on the KSMS server.
If you are using "Local Fuzzy" databases then the info is based on the content of a text file. You might have some external process (possibly Markview) that dumps this text file from a database.

Etherpad server installation

I am trying to deploy an etherpad installation on a linux server. However I am unable to find ways to allow etherpad to save documents onto the server. I want to save the text files that I edit with etherpad to be available as a .txt file in a particular directory on the server.
Any suggestions as to how I can go about doing this? I did not find much documentation online to help me with this, hence resorting to this.
You can simply access the txt output of a pad by appending
/export/txt
to your Etherpad Pad URL
You should read the documentation.

IBM Connections

I would like to ask some of you smart guys :) if it is possible to have directory structure in IBM Connections files. There is also library but i can't map it via webdav/smdb maybe it is about my information gap, but what I can is install desktop plugin ( only MS win) and then map my structure. But only files, no communities. And within files there cant be create directory in directory structure ( may i be wrong but i tried much and nothing changed my mind ). So if someone has ever experienced this before.
Can you guys help me?
While not as obvious as a File Repository like you experience in Windows Explorer. IBM Connections does enable you to use files / folders
You can find more information about the folders API at http://www-10.lotus.com/ldd/appdevwiki.nsf/xpDocViewer.xsp?lookupName=IBM+Connections+4.5+API+Documentation#action=openDocument&res_title=Working_with_folders_ic45&content=pdcontent
However, since you mentioned webdav, you may want to look at using CMIS and Apache Chemistry to access the CMIS APIs. That should give you the most flexibility in mapping your WebDav to Connections
http://chemistry.apache.org/
http://www-10.lotus.com/ldd/appdevwiki.nsf/xpDocViewer.xsp?lookupName=IBM+Connections+4.5+API+Documentation#action=openDocument&res_title=How_to_Use_Files_CMIS_APIs_with_Media_Gallery_ic45&content=pdcontent
An example of what you can do with CMIS is http://www-10.lotus.com/ldd/lcwiki.nsf/dx/Demo_Using_CMIS_Connectors_with_Lotus_Connections_Files
The Files application does not support sub folders. Sub folders are available with IBM Connections Content Manager (CCM). CCM is an additional license but supports workflow and check in check out features as well.
In addition to Matt M answer.
CCM use FileNet P8 repository to persist the files, in this case you can start to use IBM Content Navigator client with Desktop Sync options, may be it will be usefull for your requirements.

Resources