How to Log data in a SaaS Cloud Shop - shopware

As I now learned, it is not permitted by Shopware to set the permission "log_entry" and therefore use the API endpoint "api/log-entry" to add entries to the Shopware log in a SaaS Instance. :(
Would be the best solution to add an own "Log" Entity for that and provide the data to the shop owner also via an own listing view in the administration?
If so, that would be very bad, because it would be so much easier to just use the log feature Shopware already implemented.
Or is there another easier opportunity for that?
Danny

If you have a custom module you can use the Admin Extension SDK to dispatch a notification from within the iframe. Notifications of the error variant will also be persisted to log_entry.
If your app is subscribing to webhooks and that's when you want to log stuff, you'll probably have to go the route you described or preferably even log on the app server. While it may be inconvenient this measure was likely taken to disencourage using the Shopware log tables because they should be reserved for errors and the likes happening within the system and should not be opened up to apps logging errors happening on their side.

Related

Register Callback endpoint with NetSuite CRM

we have one requirement for updating/notifying enterprise applications about any/specific data change in NetSuite CRM.
I googled, but could not find, if NetSuite allows to register endpoint so that any update would be pushed to that registered endpoint. Is there any such configuration NetSuite CRM provides?
Aside from purchasing an off the shelf integration package, there are two main ways to accomplish this. Both of them are not pretty.
Polling SuiteTalk. Poll SuiteTalk as a specified frequency for any updated records. I've implemented a ruby gem that provides most of this functionality out of the box. https://github.com/NetSweet/netsuite_rails
Writing User Event SuiteScripts. Using these scripts you can trigger a script to run, that script can call an external URL and pass the NS internalId & type of the record that was updated.
sudhirk,
There's no mechanism for what you ask. Netsuite allows for a lot of different ways to configure 'incoming' data. (ie. RESTlets, SuiteTalk (WebServices), Suitelets, etc). However, building a 'push' endpoint is nearly non existent. If your external systems have simple HTTP GET options, you could use nlapiRequestURL to push data. Otherwise, you're looking into a more formal integration project. I do this daily in my job, and we prefer to use BOOMI as the middleware.
Hope this helps!

Orchard Multi-Tenancy Setup/Configuration

I am starting to play with Orchard's multi-tenancy options to enable a single codebase to host dozens of websites (perhaps over a hundred in the future). The pieces I'm unclear on with this are:
Is it possible to call one or more API endpoints to dynamically create these sites from code on my end? Meaning, we have an existing codebase (non-Orchard) in .Net so what API(s) would I call to create these sites on the fly without having to login and do it manually?
In conjunction with #1, are there API(s) for us to create the individual users for the newly created sites that have a pre-configured set of minimal permissions (create content, deal with media, navigation) and blocking others (settings, user management, etc.)? Our client base for this process is not particularly computer savvy so limiting what they can break will go a long way in saving our support staff having to fix stuff they shouldn't be accessing to begin with.
Is there a way to handle SSO within these multi-tenant sites? The difficult part here would be our site relies on Session variables for access (it's a hybrid of classic ASP and .Net that I'm trying to modernize, but have to leave things like Session in for all the old stuff to work)? I'm guessing this would get into building a module, but know that's a rather advanced process so I'm trying to avoid it if possible.
Thanks in advance!
Yes, but Orchard doesn't easily integrate into existing applications. dotNest is an example of Orchard sites being created dynamically: http://dotnest.com/knowledge-base/topics/lombiq-hosting-suite
Yes. Users can be created from code, and you can assign them restricted permissions, the simplest way of doing it being to create a group with that permission set, and to put those users into that group. All of that can be done from code.
Just use oAuth like the rest of the world.
Just forget about integrating Orchard into an existing application. Especially classic ASP ;) Time to move on.

How can I automate adding members to a Domino Server?

The company I work for wants to host documents on Lotus Quickr for external vendors to view. The way it currently works is as follows: A project manager needs to retrieve the non-employee's information (name, contact info, job title, etc.), which is sent to the Lotus manager. The Lotus manager then needs to add the non-employee as a new member to the Domino server. Then the Lotus manager needs to send the login credentials to the non-employee. Lastly, the project manager needs to give the non-employee access to the relevant Quickr place.
Because this process is very slow, my manager wants to automate a portion of the process. Our ideal solution would be to build a webpage where the non-employee could fill out their information. The project manager could then look over the the non-employee's information and choose to approve, deny, or send back the information. If the information is approved, the user will automatically be added to the Domino server. Then, the project manager would add them to the Quickr place as usual. This alternative method would eliminate a few steps, a lot of time, and the non-employee's login credentials would only be known to the non-employee.
The problem is that we're not sure how to tackle this. Would it be possible to build an XPage that could be sent out publicly that could handle this? Or is there a similar solution that we could use? I am very new to Domino and Lotus, but I would be comfortable with learning any necessary APIs once I know where to begin. For reference, we are using IBM Notes and Domino Designer 9 Social Edition.
This is indeed possible. Take a look at the User Group application on OpenNTF. It includes functionality for users to register themself so that they can login afterwards.
Good luck with your project.
in addition to #stwissel's and #Thierry's answers:
you of course can build an Xpages based application through which an anonymous user could ask to be granted access to some quickr place. You'll have to keep in mind that most visitors aren't registered users for you Domino server so you need to treat them as anonymous. This could mean that for example resources like company logos or stylesheets used in you "anonymous" application forms need to be marked as available for public access users.
Then you'll have to decide how the application forms are passed on to the project manager; you could send the data using mail, which however might open up an unwanted gateway for spammers. Preferably you would store the applicants' data in a small database from which you project managers then pull all open applications.
The rest is simple and has already been layed out by #stwissel und #Thierry: use quickr's ability to maintain its own set of place-based "local" directories (btw. one of the real cool features of this otherwise dead product).
Speaking about the product: as #stwissel already pointed out this product is no longer maintained by IBM; looking at the long record of known problems quickr had with various browser updates (esp. MSIE), not to speak of future Domino server support allow me to recommend looking for an entirely different solution
http://www-10.lotus.com/ldd/lqwiki.nsf/m_Home.xsp?documentId=F26B114598D21516852577FB005171F4#mobileViewer
QuickR on Domino can allow member not in directory if option is enabled by admin. So no need to ask to lotus manager, project manager can create local member

How to Get TFS Field values dynamically?

there is a scenario like "I have a field value in TFS which has just been changed by my team member.Can I get the value of that changed field into an application immediately it is changed?".. Pls tell me how to acheive this using C#.net.. thanks in advance
You either want to look into SOAP subscriptions, or writing a tfs server plugin that forwards updates to your app. I'd probably recommend doing the latter of the two options.
Team Foundation Server 2010 Event Handling with Subscribers
If it is imperative that your application not miss any updates (eg you're writing a sync) the you'll probably want to put a servicebus in as the transport between the plugin and your application.
Alternatively you could go with the polling up update approach, looking at each work items history to see if it has changed. Seems like a lot more work, with no real benefit.

What's the best way to report errors from a SharePoint workflow?

I have a custom action in a workflow and would like to report an error to the user when something goes wrong. What's the best way of doing that?
UPD: Ideally I would like to put the workflow in the error state and log a message to the workflow log. That doesn't seem possible. What's the closest I can get to it? I want to a reusable solution,something that's easy for users to set up when using my custom action in SharePoint Designer.
Added more details to the question.
#mauro that takes care of storing the error, but how do I display the error to the user in a way which makes sense?
#AdamSane That's seems like a rather fragile solution. It's not a matter of setting this up once on a single site. I need something others can add using SPD.
when you throw the error your error handler can then email the user, or better if the list is massive, add the error state to the workflow item - i think this is default functionality though as the error would be mentioned there.
http://www.sharepointsecurity.com/blog/sharepoint/sharepoint-2007-development/fault-handling-in-sharepoint-workflows/
Personally I would log it to either a log file or the event log depending on the issue. I think storing it using a users permissions would be a bad idea, what happens if that user does not have the correct rights? or worse still they get elevated permissions by browsing the list in explorer view?
The log file would be the best way, that way you rely only on the file system being available - you dont have to worry about trapping errors happening whilst connecting to the database etc.
Mauro
Add the error to a hidden list with that users name. Set the visibility on the list (for users) to only read/write their own values. Then use a custom web part or FlexListViewer to view the contents of that list and display it to the user. Once they acknowledge that error, remove it from the list.
If necessary, you can add a different workflow action on that message list, that says pause for 2 days and then email. Whatever, depending on your requirements.
Otherwise you can have a custom db table that you use for pretty much the same thing, this way sharepoint does most of the work for you.
Update This can be packaged up as a feature and deployed to each site as needed. The strengths of this approach (adding a list item to a list, querying, alerting a user, and emailing a user) are all built into the sharepoint itself. In this case you can focus on your custom logic only, while letting sharepoint focus on the implementation details.
If you need the user to take some action as a result of the error (e.g. retrying the workflow) is it possible to create a task for that user with information on the error and the location of the workflow?

Resources