ProxyGen allows you to distinguish between non-persistent, persistent, single-run, and singleton procedures for all external procedures that you include in your Open Client interface. ABL makes an external procedure non-persistent, persistent, single-run, or singleton by the way you invoke the procedure, not by the procedure's definition. You can include any OpenEdge external procedure in an Open Client interface as non-persistent, persistent, single-run, or singleton, with the restriction that a procedure with parameters in its main block cannot be run as single-run or singleton. For SOAP Web services and Open Client proxies, however, access to the functionality of a non-persistent procedure is very different compared to a ProcObject, and it requires different object management, depending on the session model (see
Session models) and object types involved.