Web Development

Syndicate content 22 

Greetings!

I'm new to Zen reports and I'm wondering if what I'm trying to do is possible.  I have a classmethod  that accepts three parameters to generate an xml file from a global.    I've set up my Report Definition to call the ClassMethod that generates the .xml file; however, I'm trying to figure out how to pass the parameters to that ClassMethod from the Report Definition.  The example in the documentation shows parameter passing using SQL (which I'm not using), so I'm curious if this will work.  

Last answer 7 August 2017 Last comment 14 August 2017
0   0 1
180

views

0

rating

Hello All,

While extracting the huge amount of data in the cache through the Zen page, file extraction timing is greater than session time out. How to increase the session timing in Zen/CSP gateway or If any other solution would be appreciated.  Please advise.

Last answer 8 August 2017 Last comment 14 August 2017
0   0 2
300

views

0

rating

I have a Caché server with external apache.

It has a hostname, i.e.: http://myserver.com

There is an index page, which is available over http://myserver.com/index.html (/ is a Caché CSP app)

How can I make index.html available from http://myserver.com?

Here's the relevant parts of my apache config:

<Directory />
    CSP On
    DirectoryIndex index.html
    Options FollowSymLinks
    AllowOverride All
    Require all granted
</Directory>
<Location />
    DirectoryIndex index.html
    Options FollowSymLinks 
    AllowOverride All
    CSP On
    SetHandler csp-handler-sa
</Location>
DirectoryIndex index.html
AccessFileName .htaccess

Additionally I have placed .htaccess file into web app directory

Last answer 8 August 2017 Last comment 8 August 2017
0   0 1
314

views

0

rating

If you read my previous post that introduced QEWD Micro-Services, you're hopefully eager to learn how to use them.  So in this post I'll explain what you need to know in order to get started.

If you look in the QEWD repository, you'll find the folder: 

  https://github.com/robtweed/qewd/blob/master/example/jwt

In my earlier post on JSON Web Tokens (JWTs) and QEWD I used this example application to explain how to use JWTs.  This example application also demonstrates how to set up a simple Micro-Service, in this case a service that handles user authentication.  So let me now delve into that aspect of the example application.

If you're wanting to use QEWD Micro-Services, you must also use JWTs - these provide the means by which the user's authentication and session can be cross-communicated and handled by multiple, discrete QEWD servers.  So, take a look at the startup file

+ 1   0 2
0

comments

238

views

+ 1

rating

Hi All,

We have a application currently running on Zen framework, now business wants to use Angular JS as their front-end technology for any future release but they don't want to upgrade the existing the modules which are already there in Zen (as of now).

Last answer 25 July 2017 Last comment 27 June 2017
0   0 1
253

views

0

rating

I have a tablePane that always displays with the bottom row selected. The SQL is executed when the submit/search button is clicked.  See attached.

Does anyone know how to enable row selection but prevent the bottom row being selected after the button onClick event

Last answer 7 June 2017 Last comment 20 January 2017
0   0 2
183

views

0

rating

In our last lesson, we implemented a linkage to our WidgetAccessory class, and debugged some errors we encountered along the way.  We now have our data being returned by REST, but what if we want to update or add new data to our application?

Last comment 5 June 2017
+ 3   0 5
997

views

+ 3

rating

or "Things are going to break"

We left our application over the weekend, secure in the knowledge that it was returning data from our primary persistent class, User.Widget.  However, Widgets Direct are the premier supplier of both Widgets AND Widget Accessories, so we should really start working on adding these Accessories to our application. 

We should do some housekeeping first though.  Our Page Controlller code is currently sitting in the widgetmaster.js file.  As we start to build up our application and use multiple controllers, this will make the PageController hard to find, so we should refactor it into a sensible location and file name.  So let's create modules/page/PageController.js under our web application, and paste the code in there.  We can then remove the controller code from widgetmaster.j

Last comment 5 June 2017
+ 2   0 0
607

views

+ 2

rating

Hi!

I have a question:

I create a Operation REST API , when I call to my client trough this REST API, my cliente returns list of object in JSON, like that:

[
    {
    "Center" : "aaaaaaaaaa",
    "Nif" : "00000000T",
    "NumberCenter" : "00000000",
    "Name" : "ppppp",
    },
    {
    "Center" : "aaaaaaaaaa",
    "Nif" : "00000000T",
    "NumberCenter" : "00000000",
    "Name" : "ppppp",
    },
    {
    "Center" : "aaaaaaaaaa",
    "Nif" : "00000000T",
    "NumberCenter" : "00000000",
    "Name" : "ppppp",
    }
]

On the other hand, I have in my Ensemble, Two class:

Class A --> lisf of class B

Class B --> Center, Nif,NumberCenter, Name

I need to iterate over JSON and capture de information a put this in my object A

I have been investigating... And I found a approximation that i want to do...

First of all, I want to iterate over JSON and capture de informatio

Last answer 1 June 2017 Last comment 2 June 2017
0   0 4
404

views

0

rating

Suppose I have a web application named "/my/api", with a dispatch class configured (a subclass of %CSP.REST), and I want to be able to respond to:

GET /my/api/something/:id

by loading an object with the specified ID and returning it as JSON

GET /my/api/another-thing/data.js

by returning the contents of a file (data.js) in a configured location in the filesystem, ideally based on the "CSP files phsyical path" for /my/api. (The thought is that at some point in the future the dispatch class might change to do something more complicated server-side, and that it would be nice for such a change to simply be a matter of code rather than system configuration.

Last answer 24 May 2017 Last comment 24 May 2017
0   0 4
473

views

0

rating

Hi

I am working on a project that will interact with some software called ROS (Robot Operating System). One of the development challenges we have is as follows:

 

ROS uses web sockets... So one connect with ws://localhost:9090 to the web socket server.  It starts off as http, but then "upgrades" to web socket.  It then keeps open this "tunnel" for bi-directional communication..

 

I need something like a HTTP Outbound adapter, but the Web Socket version of it...

Does anyone have any experience in this area?

 

Nigel

Last answer 18 May 2017 Last comment 18 May 2017
0   0 5
475

views

0

rating

About the Ontodia library

First of all, I think we should provide some background information about Ontodia and Caché DBMS. Let’s start with a less known product, Ontodia. Ontodia is the result of a joint project of the ISST lab of the ITMO University and VISmart, a software development company specializing in the semantic web domain. The Ontodia service was created as a web application for visualizing linked data and ontologies. We created this service because we couldn’t find simple, accessible and efficient tools for convenient visualization of linked data.

A typical use case for Ontodiа could be described as a sequence of 3 steps:

Last comment 16 May 2017
+ 4   0 0
472

views

+ 4

rating

In our last lesson, we added some formatting and validation to our Edit Widget form.  So, now we are ready to add the ability to add new Widgets to our application.  However, the great Widget Wars have come to an abrupt end, as Widget Direct has purchased its biggest competitor, WorldWideWidgets.  In order to maintain some continuity, we need to display their catalog on our new application.

So, we have good news and bad news.  The good news is at that WorldWideWidgets also use Caché, but the bad news is that their Widget table has different properties with different names than our Widget class, and we need to keep the catalogs seperate for the time being.  WorldWideWidgets don't have a WidgetAccessory catalog (and they wonder why they lost the Widget War), so we don't need to worry about Accessories for no

+ 2   0 2
0

comments

324

views

+ 2

rating

In our last lesson, we added a form to Edit our existing Widgets, and save them back to the server.  However, our Form was not well structured and our Save button had no intelligence, and was not fully visible.  So today, we will apply some Material components and Angular style to make the form more useful

Let's open EditWidget.csp, and make some changes.  First, we want to change the component from an md-card to an md-dialog.  We then want to wrap the content in a div so we can set the layout to "column" so the controls display in a vertical list, and also a Form which enables Angular to verify the state of the form

+ 2   0 4
0

comments

326

views

+ 2

rating

I have a CSP page that needs to allow the user to submit a file.  I have a form with an element in it <input type="file" name="file"/> which allows the user to select the file they want to upload from their local filesystem.  

How do I go about actually getting the file to be sent to the server?

 

Last comment 5 May 2017
0   0 3
0

answers

678

views

0

rating

We finished our last lesson with our Widgets Direct page iterating over a list of widgets, displaying an ID and a Name value.  While we have been able to achieve this with only a small amount of coding, the page itself is not the most visually appealing place to be.  The AngularJS framework is providing a powerful Model-View-Controller framework for our structure and logic, but it does not implement anything that will provide a nice UI experience.  For that we need to implement a UI toolkit.  We have numerous options here; the leading toolkits are BootStrap from Twitter and Angular Material from Google.  There are advantages and drawbacks to each choice.  It is well worth exploring demos of each toolkit to see which would fit your need

Last comment 25 April 2017
+ 6   0 5
782

views

+ 6

rating

At the end of our last lesson, we ended with our page displaying a nice (but garish) Angular Material Toolbar, and our Widget data displaying in a list of Material cards.  Our page feels a bit static, and we already know that the large number of Widgets that we will be dealing with will not be especially usable on a static list.  What can we do to help?


A filtering function would be very helpful, so let's add a text input to the top of the page. We will bind this to a variable in the $scope - widgetFilterText so that Angular has access to the value we type in. We will also wrap the whole page content in a div and set layout="column" to have the new text input and the existing cards arrange vertically on the screen

+ 3   0 0
0

comments

533

views

+ 3

rating

Hi,

 

We have a application developed in CSP and JS. Is there any way to make this application available in multiple language like Spanish etc.

 

We are ready to re-write the code in Zen also if it supports that feature.

 

Could any one of you please assist/advice a Solution to reach the required goal using Cache technologies, it will be a great help if someone has any sample code for the same.

 

 

Thanks 

Paras

Last answer 21 April 2017 Last comment 20 April 2017
0   0 2
176

views

0

rating

If you are developing applications that use CSP or Zen, or potentially any of the other InterSystems web-related stuff that's built on top of CSP, then it's important to know how to keep one particular secret.

A central part of the CSP security architecture is a server-side session key. "Server-side" because its value should never be revealed to the client that is issuing the web requests. If it is revealed, a malicious client might be able to use it to bypass your security and make your server do things you don't want it to.

Your session key is available as a property named Key of your %CSP.Session object. In other words, in your server-side code it is typically available as %session.Key

The documentation for the Key property states

Last comment 20 April 2017
+ 7   0 1
500

views

+ 7

rating

We finished our last lesson with our Widgets Direct page receiving a Welcome message as a property of a JSON object, which was unpacked and displayed on the page. However, we are on Lesson 3, and we still haven't had any talk of displaying widgets yet.  

Let's change that.  Widgets Direct are a leader in widget and widget accessories, so we clearly have numerous items to display.   To transfer this, we will need to declare and return our first array.  Let's go back to our REST.Dispatch class, and add this data to our Service

+ 4   0 5
0

comments

732

views

+ 4

rating

or "So you just got yelled at by your boss, for sending him an unformatted Hello World webpage"

Our previous lesson ended with us serving a Message value obtained from a Caché REST service to the client, using Angular as a runtime.  While there is a lot of moving parts involved in this process, the page is not especially exciting at the moment.  Before we can start adding new features, we should take a step back and review our tools.


This tutorial is using the JSON functionality built into 2016.2+ versions of Caché.  This functionality is partially available in 2016.1 but utilizes a different syntax which will not be forward compatible.

+ 11   1 6
0

comments

1110

views

+ 11

rating

In this article I'll cover testing and debugging Caché web applications (mainly REST) with external tools. Second part covers Caché tools.

You wrote server-side code and want to test it from a client or already have a web application and it doesn't work. Here comes debugging. In this article I'll go from the easiest to use tools (browser) to the most comprehensive (packet analyzer), but first let's talk a little about most common errors and how they can be resolved.

+ 7   0 1
0

comments

930

views

+ 7

rating