Skip to content

abapPM/ABAP-Purl

Version

License Contributor Covenant REUSE Status

PURL

An implementation of the purl specification aka. a package "mostly universal" URL.

A purl is a URL composed of seven components:

scheme:type/namespace/name@version?qualifiers#subpath

For details, see Purl Specs.

NO WARRANTIES, MIT License

Usage

Get the components of a purl:

DATA(purl) = /apmg/cl_purl=>parse( 'pkg:apm/[email protected]' ).

" purl->components-...
" schema  = 'pkg'
" type    = 'apm'
" name    = 'foobar'
" version = '1.2.3'

Format components into a purl:

DATA(components) = VALUE /apmg/cl_purl=>ty_purl_components(
  schema  = 'pkg'
  type    = 'apm'
  name    = 'foobar'
  version = '1.2.3' ).

DATA(url) = /apmg/cl_purl=>serialize( components ).

" url = 'pkg:apm/[email protected]' 

Validate a schema:

IF /apmg/cl_purl=>is_valid_schema( 'apm' ) = abap_true.
  " yay!
ENDIF.

Prerequisites

SAP Basis 7.50 or higher

Installation

Install purl as a global module in your system using apm.

or

Specify the purl module as a dependency in your project and import it to your namespace using apm.

Contributions

All contributions are welcome! Read our Contribution Guidelines, fork this repo, and create a pull request.

You can install the developer version of ABAP PURL using abapGit by creating a new online repository for https://github.com/abapPM/ABAP-Purl.

Recommended SAP package: /APMG/PURL

About

Made with ❤ in Canada

Copyright 2025 apm.to Inc. https://apm.to

Follow @marcf.be on Bluesky and @marcfbe or LinkedIn

About

Package "mostly universal" URL

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Releases

No releases published

Sponsor this project

 

Languages