4 Followers · 342 Posts

Caché Server Pages (CSP) is both an architecture and toolset used to build an interactive web applications with the InterSystems Data Platform.

Question Brian Palmund · Oct 2, 2018

Hi,

We get a lot of errors in the CSP Gateway eventlog like this:

>>> Time: Tue Oct 2 11:32:48 2018; RT Build: 1701.1606aa (linux/apapi:srv=2.4.6/apr=1.4.8/apu=1.5.2/mpm=prefork); Log-Level: 0; Gateway-PID: 16600; Gateway-TID: 140543045277824 
WARNING: The REQUEST_METHOD is absent for this request (CSP_DELETE_VARS) 
HTTP_PRAGMA,HTTP_CACHE_CONTROL,HTTP_ACCESS_CONTROL_REQUEST_METHOD,HTTP_ORIGIN,HTTP_ACCESS_CONTROL_REQUEST_HEADERS

It does not seem to be from an external source. Anyone have an idea where requests like this could originate from and their purpose?

 

Version is: 2017.1.0.792.0

Gateway

1
0 348
Article Chris Stewart · Apr 24, 2017 2m read

or "Bonus Breakage"

In our last lesson, we added a relationship between 2 persistent classes.  We are clearly going to need to start creating REST Services to expose CRUD operations for each of these classes, but before we do that, we should really finish defining our linkages.  We added code to our Widget toJSON to spool off related Accessory data, so we should really do the reciprocal and allow Accessories to return all Widgets that are compatible.

The code we can use is essentially the same as we used on the Widget side.

2
1 1352
Question Rosti Zacharias · Sep 22, 2018

Hi,

Somewhat weird behaviour in testing values in a resulting query.

I have a table where I need to read through a list of data, and apply a charge for matching occurrences. However, only ONE charge for one set of data. I have applied a DISTINCT function to the query, but as I cannot get a completely unique set, the DISTINCT function does not de-duplicate all of the sets.

I have therefore attempted to look for a value that if it repeats for the one data set, I can choose to skip the function that applies the charge.

The problem, is that a comparison in CSP is failing to produce the required

2
0 303
Question Mohan Kumar · Sep 20, 2018

Hi Team,

i'm learning about CSPGateway configuration, but while trying in MacOSx i'm confused what need to done.

i have CSPgateway file, and Apache 2.4 installed on Mac. Please guide me further.

this our Inbuild private Apache with run on 57772

http://macbook.local:57772/csp/sys/UtilHome.csp   

but i want run in 80 or some other configured port

http://macbook.local/csp/sys/UtilHome.csp

Thanks

1
0 590
Question Amir Samary · Sep 17, 2016

Hi!

I have the following script to install caché silently:

#!/bin/bash
ISC_INSTALLER_PARAMETERS="SuperServerPort=1972,WebServerPort=57772,InstanceOwner=controller" \
ISC_PACKAGE_INSTANCENAME="AUPOL" \
ISC_PACKAGE_INSTALLDIR="/myapp/cache" \
ISC_PACKAGE_UNICODE="Y" \
ISC_PACKAGE_INITIAL_SECURITY="Locked Down" \
ISC_PACKAGE_MGRUSER="controller" \
ISC_PACKAGE_MGRGROUP="wheel" \
ISC_PACKAGE_USER_PASSWORD="password" \
ISC_PACKAGE_CACHEUSER="cacheusr" \
ISC_PACKAGE_STARTCACHE="Y" \
ISC_PACKAGE_CACHEGROUP="cachegrp" \
ISC_PACKAGE_CSP_CONFIGURE="Y" \
ISC_PACKAGE_CSP_GATEWAY_DIR="/myapp/cspgateway" \
ISC_PACKAGE_CSP_S
4
0 698
Question heng a · Aug 7, 2018

Hello,every body. 

I am having a problem when using atelier. I found that the web front-end related files (such as csp, css, js, etc.) will change in format when they are synced to the server.

For example:

The original format of the js file may be UTF-8. However, when I edited and saved in atelier, the file version format on the server became ANSI. I tried to configure the environment in eclipse, but it doesn't seem to work.

E.g:

Because the file contains Chinese characters, this has a significant impact on the actual use.

So, what should I do to solve this problem. Thank you in advance.

8
2 474
Question Virginia Rogers · Jul 24, 2018

I have a web application and one of the CSP pages contains the following snippets:

<script language='javascript'>
function SubmitForm(pid,sid) {
//code to process form

alert ("study saved");

self.document.location="newpage.csp";

}

</script>

<form name="Studyform"  method="post" onsubmit='return SubmitForm(#(SubjObj.%Id())#,#(StudyObj.%Id())#);' >
<!-- form contents -->

</form>

The form is correctly processed, the object is saved, and the alert appears, but the new page does not get loaded and I cannot figure out why.

Any suggestions?

5
0 561
Question Giray Ozel · Jul 10, 2018

I have a CSP REST web application where I'm using delegated authentication via basic authentication in the REST calls. When I do a call to the web app with correct user credentials, I get a  CSPSESSIONID cookie back representing the CSP session, which has started for the user I'm logged in with.

And when I want to log out/end the CSP session with the "CacheLogout=end" query parameter, I get a 401 Unauthorized code back. But the csp session itself does get terminated, which means the logout call was successful.

Is there a way to have it return a 200 OK status code?

3
0 670
Article Chris Stewart · Apr 21, 2017 3m read

or "Didn't you say you would cover Persistent Objects in Part 5, Chris?"

Yes, that was the plan.  This is a pretty important topic, so it get's its own Article

Up until now, we've display widget JSON that has been created by a basic loop.  Clearly this isn't of much value.  Now we have our stack connected together, and we can see that the data is flowing to the Welcome page, it's time to complete the stack and start feeding our service from "real" data.


Let's start with our (very basic) Persistent class for Widgets. We have 4 properties to hold Name, Description, Price and current Quantity.

4
0 1678
Question David Crawford · Jun 18, 2018

I thought I should be able to go to the application error log or look at d ^%ER when I get the following error in the browser when troubleshooting a CSP page:

An error occurred with the CSP application and has been logged to system error log (^ERRORS)

However nothing is being generated in these logs. Where are these logs being made?

Thank you

9
1 2563
Question Kurt Hofman · May 15, 2018

Hello, I'm trying to install CSP Gateway on Ubuntu 18.04 (Apache) with the installer CSPGateway-2018.1.1.638.0-lnxubuntux64.tar.gz but it doesn't seem to work.  I keep getting access-denied when I try to open CSP-pages or the CSP Management portal.

Does someone have an installation-manual or so ?

5
0 1218
Question Eduard Lebedyuk · May 9, 2018

I need to redirect user to a url, which is 5000+ characters long.
To do that I set:

set %response.Redirect = url

However, in the browser I receive this header:

LOCATION: <First 3972 characters of the 'url' variable>

In WriteHTTPHeader method of %CSP.Response, where the LOCATION header is
written:

Write "Location: ", <Redirect>,!

After I added a buffer flush, after the above-mentioned line:

Write *-3

Then in browser I received full, correct value of a LOCATION header.
Is there a better solution?
It's a rest API, so maybe there's some callback method I can override to flush the output buffer?

8
0 562
Question Gary Marston · Apr 20, 2018

Hi,

   I have a ZEN application that displays PDF files in an 'iframe', embedded on a ZEN popup dialog. embedded in a ZEN page running on IE 11 with its document mode set to 5, which is enough to make most reasonable people give up and start selling hot dogs in the park.

  I can display the PDF all day long without issue but when the "window.print()' command is issued all I get for the PDF is an empty area on the printed page when a single page of the PDF should be displayed.The PDF arrives as a normal PDF file and is NOT base64 encoded.

4
0 1109
Article Vitaliy Serdtsev · Nov 17, 2017 6m read

This series of articles aims to address the following topics:

  • Creation of a web application based on REST pages;
  • Overview of some tools for tracing (debugging) HTTP requests;
  • Switching from hyperevents to... hyperevents;
  • Integration with jQuery File Upload;
  • Conversion of JSON from the {id:1,parentId:1} format to the {id:1,children:[{}]} format for tree visualization;
  • Integration with jQuery EasyUI (using datagrid and tree as examples);
  • Other topics.
1
1 1098
Article Chris Stewart · Apr 28, 2017 4m read

In our last lesson, we implemented a new REST Service to allow us to perform CRU operations on Widgets, and refactored our Controllers to allow the page setup to be decouple from the content.

When we created our Widget Services, we did not implement a Deletion operation, which the HTTP Delete verb provides. As this is a base table for other parts of the Widgets Direct empire, we don't want to be able to do a hard Delete of the WIdget values, as this could cause issues with our ordering and billing modules.

10
0 1291
Question David Crawford · Jan 11, 2018

Hello everyone,

What has been the best way for you to store and retrieve session information about a user for CSP projects? I can use these methods easily:

CSP Session Management

however I'd like to know if there's a better way to keep more permanent information, or should it all be kept in a class?

Additionally, using whatever method, what would be the best way to block user access to certain portions of the website or entire pages? Such as an admin section. With normal web development this wouldn't be too difficult, but I need help connecting this into CSP terms.

Thank you!

3
0 1088
Question Sébastien Demoustiez · Nov 21, 2017

Hello Community,

I recently encountered a issue with Caché and I can't figure out where the problem is coming from.

I noticed that the license limit (200)  was reached whenever I was opening my Studio (so it seems). When this occurs, I restart Caché (with the Cube in the Taskbar), and the number of license used is back to 1%, but grows back after.  The time taken before the number of license  grows back again looks pretty random.

Here is a couple of screenshots :

Does anybody know where the problem might come from ?

7
0 1997
Question Wendy Griffiths · Nov 21, 2017

We have an web application accessed using https, that uses CSP technology with frames.

The initial 'login' is via a single CSP page, which then redirects to another CSP page which creates the frames (4 in all) and loads a CSP page in each of those.  For the most part the frames load without error, but sometimes when logging in and sometimes while using the system ' 5916 Illegal CSP Request ' errors occur.

I say 'login' in inverted commas as a Cache login is not performed just an application login, I don't know if that's relevant so thought I'd mention it.

I presume the errors are connected to

2
0 813
Article David Loveluck · Nov 8, 2017 5m read

Using the CSP Page Statistics

Application Performance Management

Introduction

A key part of Application Performance Management (APM) is recording the activity and performance of user activity. For many web applications the closest you can get to this is to record the CSP pages or CSP based services being dispatched.

If the pages or service names are meaningful and they indicate the business activity being performed the CSP page statistics can be very useful in building up a historical record of activity, performance and resource usage.

1
1 764
Question Alex Goncharov · Nov 6, 2017

Hello, evrybody, I'm writing one project using CSP("OnPreHTTP"), and also REST angular. At the beginning I wrote purely on csp, then I decided to use angular for the flexibility of the client part. Now I can not design logging, I created a table App.Log with properties

/// Type of eventProperty EventType As %String(MAXLEN = 10, VALUELIST = ",NONE,FATAL,ERROR,WARN,INFO,STAT,DEBUG,RAW") [ InitialExpression = "INFO" ];/// Name of class, where event happenedProperty ClassName As %String(MAXLEN = 256);/// Name of method, where event happenedProperty MethodName As %String(MAXLEN = 128);
3
0 689
Article Evgeny Shvarov · Oct 19, 2017 1m read

Sometimes you can face the situation when you did update the web app on Caché server but you cannot get the newest version of the app in a browser.

Here are couple recipes which help me to solve it. From simplest to more sophisticated and not obvious.

1. Refresh page in a browser

In Chrome it is Ctrl+R or 'Refresh' button. Obvious, but helpful.

2. Hard reset in a browser

If you are in Chrome, open Developer tools

and then right click on Refresh button.  Less obvious and very helpful sometimes.

3. Clear cache in CSP Gateway

If 1 and 2 don't work for you, try to flush the CSP Gateway cache.

Open Caché

1
0 1664
Question Fred Gustafsson · Aug 24, 2017

There seems to be a problem with the sync/save. If I open a CSP file, add a CRLF to end of it and save the file I get a  sync conflict. This can't be right.

To make matters worse I can then select to  the local version and will then end up in an infinite loop where the CSP import/compiler keeps adding more and more CRLFs to the file.

You can see an example here: https://youtu.be/EY-_FA-kOpI

4
0 446