Het is belangrijk om te weten dat in de context van dit document het gebruik van de term 'momentopname' verwijst naar het algemene proces van het ophalen van point-in-time gegevens uit het SIS om deze op te slaan in een plat bestand dat vervolgens wordt verwerkt.
Momentopname biedt de mogelijkheid van integratie met behulp van point-in-time gegevens zoals aangeleverd door het SIS met twee ondersteunde integratietypen (lees: gegevensindelingen) binnen het SIS Framework voor Momentopname: Momentopname-XML en Momentopname-bestand (of gescheiden gegevens). Het laatste integratietype, Momentopname-bestand, is de indeling van de toekomst en die wordt dan ook bijgewerkt voor ondersteuning van nieuwe gegevensobjecten. Momentopname-XML krijgt alleen nog onderhoudsupdates.
De verwerking voor beide integratietypen op basis van momentopnamen bestaat uit het via HTTP posten van het gegevensbestand naar het betreffende eindpunt.
Ondersteunde gegevens
Gegevensobject | Ondersteuning voor Momentopname-bestand | Ondersteuning voor Momentopname-XML |
---|---|---|
Gebruikers | Ja | Ja |
Cursussen | Ja | Ja |
Lidmaatschappen (inschrijvingen en docententoewijzingen) |
Ja | Ja |
Cataloguscategorieën | Ja | Ja |
Organisaties | Ja | Ja |
Waarnemers | Ja | Ja |
Instellingsrollen | Ja | Ja |
Knooppunten | Ja | |
Gecombineerde cursussen | Ja | |
Periodes | Ja | |
Normen (als een cursuskenmerk) | Ja |
Vereisten
Mogelijkheid van het SIS om gegevens te genereren voor het gekozen integratietype: Momentopname-XML of Momentopname-bestand met het juiste scheidingsteken.
Nog een belangrijk punt: de Snapshot Controller of de gegevensindeling Momentopname-XML moet niet de eerste keuze zijn voor een integratie aangezien er alleen nog onderhoudsupdates worden uitgebracht en er geen ondersteuning voor nieuwe objecten is en er geen nieuwe functies meer worden ontwikkeld. De kans is groot dat er in de toekomst een aankondiging zal komen dat de ondersteuning helemaal gaat stoppen, uiteraard wel met voldoende tijd voor klanten om over te stappen naar een ander type integratie.
Raadpleeg de sectie met voorbeelden voor Enterprise 1.1 voor een uitvoerige beschrijving van het integratietype. Belangrijk hierbij is dat de gegevensindeling iets verschilt tussen de twee ondersteunde varianten van Enterprise 1.1 (Standard en Vista).
Configuratie: integratietypen met momentopnamen
Naast kennis van de gegevens die betrokken zijn bij een SIS-integratie, is voor de configuratie van de integratietypen met momentopnamen kennis vereist van de SIS-functies en eindpunten, met name om te bepalen of de gegevensobjecten die worden ondersteund in het geselecteerde type momentopname overeenkomen met de doelen die de klant heeft voor de integratie. Daarnaast is kennis van de specifieke bestandsindeling noodzakelijk. Je kunt een momentopname-integratie maken via de volgende stappen voor systeembeheerders in de gebruikersinterface van Learn voor SIS-integratie: Gegevensintegratie > Integraties van studenteninformatiesystemen
De volgende stappen zijn hetzelfde voor beide soorten momentopname-integraties, met als enige verschil de keuze van het integratietype: XML-gegevens (kies Momentopname-XML) of gescheiden tekens (Momentopname-bestand).
- Selecteer Integratie maken.
- Selecteer Momentopname-XML of Momentopname-bestand.
- Op het volgende scherm zie je de opties voor de configuratie die je kunt bewerken:
Als je geavanceerde configuratie wilt uitvoeren (zoals gegevenstoewijzing), moet een integratie de status Bezig met testen of Actief hebben
- Integratienaam: voer Momentopname-XML of Momentopname-bestand in.
- Beschrijving (optioneel): voer tekst in om de integratie te beschrijven Bijvoorbeeld: Momentopname-XML testen of Momentopname-bestand testen.
- De waarde voor Gedeelde gebruikersnaam wordt gebruikt voor het posten van gegevens, net als Gedeeld wachtwoord
- Stel de integratiestatus in:
- Inactief: geen verwerking door integratie
- Actief: verwerking door integratie en Learn-gegevens worden bijgewerkt
- Bezig met testen: verwerking door integratie en Learn-gegevens worden niet bijgewerkt
- Stel het detailniveau van de logboekfunctie in. Voor testdoeleinden wordt aangeraden om Alle diagnose- en foutopsporingsberichten te selecteren. Voor de status Actief wordt het aanbevolen om een lagere instelling te gebruiken, zoals Alleen fouten of Fouten en waarschuwingen.
- Selecteer vervolgens de gegevensbronsleutel (DSK) die je wilt gebruiken voor deze integratie. Je kunt een specifieke bestaande DSK selecteren, een nieuwe sleutel maken of de gegevensbron gebruiken die in de feed is opgenomen. In alle gevallen moet er een DSK zijn gemaakt voordat de gegevensfeeds kunnen worden verwerkt.
- Het beheer van bovenliggende knooppunten wordt alleen ondersteund door Momentopname-bestand. Maak de juiste keuze op basis van de doelen die de klant heeft.
- Selecteer ten slotte de objecten die worden verwerkt via deze integratie en geef aan hoe pariteit moet worden afgehandeld. In de meeste gevallen zijn de standaardwaarden prima.
- Je kunt verschillende integratietypen gebruiken, die elk een unieke subset van beschikbare integratieobjecten verwerken.
- Selecteer Verzenden en de nieuwe Momentopname-integratie wordt toegevoegd aan de lijst met integraties.
Je moet nog één stap uitvoeren om de Momentopname-integratie te ondersteunen en dat is het configureren van het SIS-systeem voor het posten van gegevens naar Learn of het configureren van een cron- of batchtaak op de toepassingsserver voor het posten van de gegevens naar Learn. Momentopname-eindpunten zijn specifiek voor de vereiste taak die moet worden uitgevoerd.
Het posten van gegevens naar Learn door de toepassingsserver kan worden uitgevoerd met behulp van CURL of een vergelijkbare toepassing die wordt geactiveerd door een cron- of batchtaak:
curl -k -w %{http_code} -H "Content-Type:text/plain" -u SHARED_USERNAME:SHARED_PASSWORD --data-binary @PATH_TO_TEST_FILE ENDPOINT_URL
Vervang:
SHARED_USERNAME door de gedeelde gebruikersnaam
SHARED_PASSWORD door het gedeelde wachtwoord
PATH_TO_TEXT_FILE door het pad naar het XML-gegevensbestand
Replace ENDPOINT_URL door de URL van het eindpunt.
Je kunt een lijst met de eindpunten op de server bekijken door naar de pagina HTTP-gegevens te gaan (via het contextmenu van de integratie Momentopname-bestand):
Systeembeheer (Building Blocks) > Gegevensintegratie > Integraties van studenteninformatiesystemen > (contextmenu van jouw integratie) > HTTP-gegevens)
Als de integratie wordt ondersteund door middleware of door het SIS, kunnen gegevens rechtstreeks naar het eindpunt worden gepost door het bovenstaande protocol te volgen.
Als deze stappen zijn voltooid en het SIS is ingeschakeld voor het genereren van gegevens en het posten of opslaan naar bestand voor posten naar Learn, moeten er logboeken worden aangemaakt voor de integratie.
Bekijk de gegevens en bepaal of je de beschikbare gegevensobjecten moet aanpassen met behulp van Geavanceerde configuratie/Veldtoewijzing. Zie de sectie over veldtoewijzing aan het einde van de sectie met voorbeelden voor een beschrijving van deze functionaliteit.
Zie Automatisering van Momentopname-bestand voor meer informatie over het verwerken van gegevensbestanden.
Momentopname-integraties
Momentopname-integraties zijn gebaseerd op sets met gegevens die voldoen aan specifieke voorwaarden, bijvoorbeeld voor het beheren van gebruikers of cursussen in het systeem. Van de twee ondersteunde typen, Momentopname-XML en Momentopname-bestand, kan alleen van Momentopname-bestand worden gezegd dat dit type het meest actueel is qua ondersteunde gegevensobjecten van Learn.
Net als bij alle op "bestanden gebaseerde" integratietypen (beide Momentopname-varianten en Enterprise 1.1) zijn er twee processen voor het benutten van gegevens in deze bestanden: via de optie Invoerbestand uploaden in de GUI of via een HTTP-gegevensoverdracht (bijvoorbeeld: cURL). In het geval van een HTTP-gegevensoverdracht kan een cron- of batchtaak worden gebruikt om de bewerking te activeren. Indien dit wordt ondersteund door het SIS of middleware kan een gegevensstream bovendien rechtstreeks worden gepost.
Elke bewerking wordt gerealiseerd via een bepaald eindpunt. Deze eindpunten voor de toepassingsserver zijn beschikbaar via de koppeling HTTP-gegevens in het menu van de integratie.
Momentopname-eindpunten
Eindpunten voor momentopnamebewerkingen voor plat bestand
Gebruik deze gegevens om het SIS in te stellen voor het publiceren van Momentopname-invoerbestanden naar de integratie. Opgeslagen objecten blijven behouden, evenals de bijbehorende gegevens. Verwijderde objecten worden verwijderd. Met Volledig vernieuwen worden alle bestaande objecten verwijderd die niet in het invoerbestand staan. Als er gegevens van een bepaald objecttype worden gepost naar een andersoortig eindpunt, mislukt de bewerking. Bijvoorbeeld: als je een gegevensbestand van een cursus post naar een Person-eindpunt, mislukt dit.
Als je een cursus uitschakelt, worden lidmaatschappen in die cursus ook uitgeschakeld. Dit is nieuw gedrag.
De URL van een eindpunt van een bewerking vind je ook in de gebruikersinterface van Blackboard Learn. Navigeer naar Configuratiescherm voor systeembeheer > Gegevensintegratie > Integraties van studenteninformatiesystemen. Zoek de integratie, open het menu en selecteer HTTP-gegevens. De URL's van het eindpunt van de integratie staan vermeld.
Bewerking | URL van eindpunt |
---|---|
Cursus - Store | https://<servername.domain.edu>/webapps/bb-data-integration-flatfile-BB<DATABASEIDENTIFIER>/endpoint/course/store |
Cursus - Complete Refresh | https://<servername.domain.edu>/webapps/bb-data-integration-flatfile-BB<DATABASEIDENTIFIER>/endpoint/course/refresh |
Cursus - Complete Refresh by DSK | https://<servername.domain.edu>/webapps/bb-data-integration-flatfile-BB<DATABASEIDENTIFIER>/endpoint/course/refreshlegacy |
Cursus - Delete | https://<servername.domain.edu>/webapps/bb-data-integration-flatfile-BB<DATABASEIDENTIFIER>/endpoint/course/delete |
Cursuskoppeling - Store | https://<servername.domain.edu>/webapps/bb-data-integration-flatfile-BB<DATABASEIDENTIFIER>/endpoint/courseassociation/store |
Cursuskoppeling - Complete Refresh | https://<servername.domain.edu>/webapps/bb-data-integration-flatfile-BB<DATABASEIDENTIFIER>/endpoint/courseassociation/refresh |
Cursuskoppeling - Complete Refresh by DSK | https://<servername.domain.edu>/webapps/bb-data-integration-flatfile-BB<DATABASEIDENTIFIER>/endpoint/courseassociation/refreshlegacy |
Cursuskoppeling - Delete | https://<servername.domain.edu>/webapps/bb-data-integration-flatfile-BB<DATABASEIDENTIFIER>/endpoint/courseassociation/delete |
Cursuscategorie - Store | https://<servername.domain.edu>/webapps/bb-data-integration-flatfile-BB<DATABASEIDENTIFIER>/endpoint/coursecategory/store |
Cursuscategorie - Complete Refresh | https://<servername.domain.edu>/webapps/bb-data-integration-flatfile-BB<DATABASEIDENTIFIER>/endpoint/coursecategory/refresh |
Cursuscategorie - Complete Refresh by DSK | https://<servername.domain.edu>/webapps/bb-data-integration-flatfile-BB<DATABASEIDENTIFIER>/endpoint/coursecategory/refreshlegacy |
Cursuscategorie - Delete | https://<servername.domain.edu>/webapps/bb-data-integration-flatfile-BB<DATABASEIDENTIFIER>/endpoint/coursecategory/delete |
Lidmaatschap cursuscategorie - Store | https://<servername.domain.edu>/webapps/bb-data-integration-flatfile-BB<DATABASEIDENTIFIER>/endpoint/coursecategorymembership/store |
Lidmaatschap cursuscategorie - Complete Refresh | https://<servername.domain.edu>/webapps/bb-data-integration-flatfile-BB<DATABASEIDENTIFIER>/endpoint/coursecategorymembership/refresh |
Lidmaatschap cursuscategorie - Complete Refresh by DSK | https://<servername.domain.edu>/webapps/bb-data-integration-flatfile-BB<DATABASEIDENTIFIER>/endpoint/coursecategorymembership/refreshlegacy |
Lidmaatschap cursuscategorie - Delete | https://<servername.domain.edu>/webapps/bb-data-integration-flatfile-BB<DATABASEIDENTIFIER>/endpoint/coursecategorymembership/delete |
Cursuslidmaatschap - Store | https://<servername.domain.edu>/webapps/bb-data-integration-flatfile-BB<DATABASEIDENTIFIER>/endpoint/membership/store |
Cursuslidmaatschap - Complete Refresh | https://<servername.domain.edu>/webapps/bb-data-integration-flatfile-BB<DATABASEIDENTIFIER>/endpoint/membership/refresh |
Cursuslidmaatschap - Complete Refresh by DSK | https://<servername.domain.edu>/webapps/bb-data-integration-flatfile-BB<DATABASEIDENTIFIER>/endpoint/membership/refreshlegacy |
Cursuslidmaatschap - Delete | https://<servername.domain.edu>/webapps/bb-data-integration-flatfile-BB<DATABASEIDENTIFIER>/endpoint/membership/delete |
Koppeling cursusstandaard - Store | https://<servername.domain.edu>/webapps/bb-data-integration-flatfile-BB<DATABASEIDENTIFIER>/endpoint/standardsassociation/store |
Koppeling cursusstandaard - Complete Refresh | https://<servername.domain.edu>/webapps/bb-data-integration-flatfile-BB<DATABASEIDENTIFIER>/endpoint/standardsassociation/refresh |
Koppeling cursusstandaard - Complete Refresh by DSK | https://<servername.domain.edu>/webapps/bb-data-integration-flatfile-BB<DATABASEIDENTIFIER>/endpoint/standardsassociation/refreshlegacy |
Koppeling cursusstandaard - Delete | https://<servername.domain.edu>/webapps/bb-data-integration-flatfile-BB<DATABASEIDENTIFIER>/endpoint/standardsassociation/delete |
Hiërarchieknooppunt - Store | https://<servername.domain.edu>/webapps/bb-data-integration-flatfile-BB<DATABASEIDENTIFIER>/endpoint/node/store |
Hiërarchieknooppunt - Complete Refresh | https://<servername.domain.edu>/webapps/bb-data-integration-flatfile-BB<DATABASEIDENTIFIER>/endpoint/node/refresh |
Hiërarchieknooppunt - Complete Refresh by DSK | https://<servername.domain.edu>/webapps/bb-data-integration-flatfile-BB<DATABASEIDENTIFIER>/endpoint/node/refreshlegacy |
Hiërarchieknooppunt - Delete | https://<servername.domain.edu>/webapps/bb-data-integration-flatfile-BB<DATABASEIDENTIFIER>/endpoint/node/delete |
Waarnemerskoppeling - Store | https://<servername.domain.edu>/webapps/bb-data-integration-flatfile-BB<DATABASEIDENTIFIER>/endpoint/associateobserver/store |
Waarnemerskoppeling - Complete Refresh | https://<servername.domain.edu>/webapps/bb-data-integration-flatfile-BB<DATABASEIDENTIFIER>/endpoint/associateobserver/refresh |
Waarnemerskoppeling - Complete Refresh by DSK | https://<servername.domain.edu>/webapps/bb-data-integration-flatfile-BB<DATABASEIDENTIFIER>/endpoint/associateobserver/refreshlegacy |
Waarnemerskoppeling - Delete | https://<servername.domain.edu>/webapps/bb-data-integration-flatfile-BB<DATABASEIDENTIFIER>/endpoint/associateobserver/delete |
Organisatie - Store | https://<servername.domain.edu>/webapps/bb-data-integration-flatfile-BB<DATABASEIDENTIFIER>/endpoint/organization/store |
Organisatie - Complete Refresh | https://<servername.domain.edu>/webapps/bb-data-integration-flatfile-BB<DATABASEIDENTIFIER>/endpoint/organization/refresh |
Organisatie - Complete Refresh by DSK | https://<servername.domain.edu>/webapps/bb-data-integration-flatfile-BB<DATABASEIDENTIFIER>/endpoint/organization/refreshlegacy |
Organisatie - Delete | https://<servername.domain.edu>/webapps/bb-data-integration-flatfile-BB<DATABASEIDENTIFIER>/endpoint/organization/delete |
Organisatiekoppeling - Store | https://<servername.domain.edu>/webapps/bb-data-integration-flatfile-BB<DATABASEIDENTIFIER>/endpoint/organizationassociation/store |
Organisatiekoppeling - Complete Refresh | https://<servername.domain.edu>/webapps/bb-data-integration-flatfile-BB<DATABASEIDENTIFIER>/endpoint/organizationassociation/refresh |
Organisatiekoppeling - Complete Refresh by DSK | https://<servername.domain.edu>/webapps/bb-data-integration-flatfile-BB<DATABASEIDENTIFIER>/endpoint/organizationassociation/refreshlegacy |
Organisatiekoppeling - Delete | https://<servername.domain.edu>/webapps/bb-data-integration-flatfile-BB<DATABASEIDENTIFIER>/endpoint/organizationassociation/delete |
Organisatiecategorie - Store | https://<servername.domain.edu>/webapps/bb-data-integration-flatfile-BB<DATABASEIDENTIFIER>/endpoint/organizationcategory/store |
Organisatiecategorie - Complete Refresh | https://<servername.domain.edu>/webapps/bb-data-integration-flatfile-BB<DATABASEIDENTIFIER>/endpoint/organizationcategory/refresh |
Organisatiecategorie - Complete Refresh by DSK | https://<servername.domain.edu>/webapps/bb-data-integration-flatfile-BB<DATABASEIDENTIFIER>/endpoint/organizationcategory/refreshlegacy |
Organisatiecategorie - Delete | https://<servername.domain.edu>/webapps/bb-data-integration-flatfile-BB<DATABASEIDENTIFIER>/endpoint/organizationcategory/delete |
Lidmaatschap organisatiecategorie - Store | https://<servername.domain.edu>/webapps/bb-data-integration-flatfile-BB<DATABASEIDENTIFIER>/endpoint/organizationcategorymembership/store |
Lidmaatschap organisatiecategorie - Complete Refresh | https://<servername.domain.edu>/webapps/bb-data-integration-flatfile-BB<DATABASEIDENTIFIER>/endpoint/organizationcategorymembership/refresh |
Lidmaatschap organisatiecategorie - Complete Refresh by DSK | https://<servername.domain.edu>/webapps/bb-data-integration-flatfile-BB<DATABASEIDENTIFIER>/endpoint/organizationcategorymembership/refreshlegacy |
Lidmaatschap organisatiecategorie - Delete | https://<servername.domain.edu>/webapps/bb-data-integration-flatfile-BB<DATABASEIDENTIFIER>/endpoint/organizationcategorymembership/delete |
Organisatielidmaatschap - Store | https://<servername.domain.edu>/webapps/bb-data-integration-flatfile-BB<DATABASEIDENTIFIER>/endpoint/organizationmembership/store |
Organisatielidmaatschap - Complete Refresh | https://<servername.domain.edu>/webapps/bb-data-integration-flatfile-BB<DATABASEIDENTIFIER>/endpoint/organizationmembership/refresh |
Organisatielidmaatschap - Complete Refresh by DSK | https://<servername.domain.edu>/webapps/bb-data-integration-flatfile-BB<DATABASEIDENTIFIER>/endpoint/organizationmembership/refreshlegacy |
Organisatielidmaatschap - Delete | https://<servername.domain.edu>/webapps/bb-data-integration-flatfile-BB<DATABASEIDENTIFIER>/endpoint/organizationmembership/delete |
Persoon - Store | https://<servername.domain.edu>/webapps/bb-data-integration-flatfile-BB<DATABASEIDENTIFIER>/endpoint/person/store |
Persoon - Complete Refresh | https://<servername.domain.edu>/webapps/bb-data-integration-flatfile-BB<DATABASEIDENTIFIER>/endpoint/person/refresh |
Persoon - Complete Refresh by DSK | https://<servername.domain.edu>/webapps/bb-data-integration-flatfile-BB<DATABASEIDENTIFIER>/endpoint/person/refreshlegacy |
Persoon - Delete | https://<servername.domain.edu>/webapps/bb-data-integration-flatfile-BB<DATABASEIDENTIFIER>/endpoint/person/delete |
Periode - Store | https://<servername.domain.edu>/webapps/bb-data-integration-flatfile-BB<DATABASEIDENTIFIER>/endpoint/term/store |
Periode - Complete Refresh | https://<servername.domain.edu>/webapps/bb-data-integration-flatfile-BB<DATABASEIDENTIFIER>/endpoint/term/refresh |
Periode - Complete Refresh by DSK | https://<servername.domain.edu>/webapps/bb-data-integration-flatfile-BB<DATABASEIDENTIFIER>/endpoint/term/refreshlegacy |
Periode - Delete | https://<servername.domain.edu>/webapps/bb-data-integration-flatfile-BB<DATABASEIDENTIFIER>/endpoint/term/delete |
Gebruikerskoppeling - Store | https://<servername.domain.edu>/webapps/bb-data-integration-flatfile-BB<DATABASEIDENTIFIER>/endpoint/userassociation/store |
Gebruikerskoppeling - Complete Refresh | https://<servername.domain.edu>/webapps/bb-data-integration-flatfile-BB<DATABASEIDENTIFIER>/endpoint/userassociation/refresh |
Gebruikerskoppeling - Complete Refresh by DSK | https://<servername.domain.edu>/webapps/bb-data-integration-flatfile-BB<DATABASEIDENTIFIER>/endpoint/userassociation/refreshlegacy |
Gebruikerskoppeling - Delete | https://<servername.domain.edu>/webapps/bb-data-integration-flatfile-BB<DATABASEIDENTIFIER>/endpoint/userassociation/delete |
Secundaire instellingsrol van gebruiker - Store | https://<servername.domain.edu>/webapps/bb-data-integration-flatfile-BB<DATABASEIDENTIFIER>/endpoint/secondaryinstrole/store |
Secundaire instellingsrol van gebruiker - Complete Refresh | https://<servername.domain.edu>/webapps/bb-data-integration-flatfile-BB<DATABASEIDENTIFIER>/endpoint/secondaryinstrole/refresh |
Secundaire instellingsrol van gebruiker - Complete Refresh by DSK | https://<servername.domain.edu>/webapps/bb-data-integration-flatfile-BB<DATABASEIDENTIFIER>/endpoint/secondaryinstrole/refreshlegacy |
Secundaire instellingsrol van gebruiker - Delete | https://<servername.domain.edu>/webapps/bb-data-integration-flatfile-BB<DATABASEIDENTIFIER>/endpoint/secondaryinstrole/delete |
Als je bekend bent met de oude variant van momentopnamen, zul je zien dat het type Momentopname-bestand van het SIS Framework een ongewijzigde indeling heeft, afgezien van de toevoeging van headers voor de nieuwe ondersteunde gegevensobjecten. Zie Gegevensindeling van Momentopname-bestand en Voorbeelden van Momentopname-bestanden voor meer informatie.
Eindpunten voor momentopnamebewerkingen voor XML
Gebruik deze gegevens om de POST XML-invoerbestanden voor de integratie van het SIS in te stellen. Opgeslagen objecten blijven behouden, evenals de bijbehorende gegevens. Verwijderde objecten worden verwijderd. Met Volledig vernieuwen worden alle bestaande objecten verwijderd die niet in het invoerbestand staan. Het publiceren van een object met een onjuist objecttype is niet mogelijk.
Bewerking | Eindpunt |
---|---|
Recordstatus gebruiken | https://<servername.domain.edu>/webapps/bb-data-integration-ss-xml-BB<DATABASEIDENTIFIER>/endpoint |
Volledig vernieuwen | https://<servername.domain.edu>/webapps/bb-data-integration-ss-xml-BB<DATABASEIDENTIFIER>/endpoint/refresh |
Alleen verwijderen | https://<servername.domain.edu>/webapps/bb-data-integration-ss-xml-BB<DATABASEIDENTIFIER>/endpoint/delete |