Hallo
We gebruiken twee tellers voor de unieke naamgeving van CAD-bestanden die we opslaan in de ePDM-KLUIS (P-XXXXXX.sldprt en A-XXXXXX.sldasm). Van onze CAD-bestanden wordt zonder uitzondering een back-up gemaakt in de kluis.
Ik ben bezig met het ontwikkelen van een in-house applicatie die nieuwe bestanden gaat genereren die in de kluis moeten worden opgeslagen. Ik heb dus toegang nodig tot de meters.
Ik wil het graag goed doen, dat wil zeggen dat ik niet rechtstreeks in XML-bestanden schrijf. Anders zou ik niets kunnen zeggen over de concurrerende toegang van deze meters.
Ik ontdekte de aanwezigheid van het SmartCounter.dll bestand. Wat een interessante naam, nietwaar? Is er bijbehorende documentatie?
Vriendelijke groeten
Hallo
Als je een aanvraag doet via de PDM API, tenzij ik me vergis, kun je in de help aan de kant van GetSerialNumberNames kijken, hiermee heb je toegang tot de tellers.
1 like
Hallo
Om een nummer uit ePDM te nemen, zie het voorbeeld : Serienummers maken
en ook het voorbeeld onderaan deze pagina: Value Property
Hallo
Dank u voor uw antwoorden en sorry voor mijn gebrek aan precisie. Ons meternummer wordt gegeven door de smartproperty en maakt geen gebruik van EPDM-tools zoals serienummers. De tellers worden gedefinieerd in een xml-bestand dat buiten de kluis (op een Windows-share) wordt opgeslagen.
<Counters>
<Counter name="NomFichierPrt" id="Incrementing0" Auto="0" AutoName="" type="1">
<Value value="55413" StartValue="0" step="1" />
<Custom value="" SeparatorList=";" LinkFileList="False" />
<Format value="P-0000000#" />
</Counter>
<Counter name="Incrementing" id="Incrementing" Auto="0" AutoName="" type="1">
<Value value="0" StartValue="0" step="0" />
<Custom value="" SeparatorList=";" LinkFileList="False" />
<Format value="0#" />
</Counter>
<Counter name="NomFichierAsm" id="Incrementing1" Auto="0" AutoName="" type="1">
<Value value="86557" StartValue="0" step="1" />
<Custom value="" SeparatorList=";" LinkFileList="False" />
<Format value="A-0000000#" />
</Counter>
</Counters>
In dit geval is het xml-bestand daar voor gemaakt.
Verhoog gewoon 'Value value="55413" ' in de
Schrijven we rechtstreeks naar het bestand? Is er geen risico verbonden aan gelijktijdige toegang? Moet ik een '.lock'-vergrendelingsbestand maken?
gebruikt FileShare.None:
bool success = false;
while (!success)
{
try
{
using(Stream file = new FileStream(path, FileMode.Open, FileAccess.ReadWrite, FileShare.None))
{
// Read current content from file.
// Make changes
// Save new content to file.
}
success = true;
}
catch(IOException e)
{
// Someone else was modifying the file or another IO exception.
}
}
OK. Ik denk dat het gaat lukken.
Ik zal een "feedback" opmerking maken wanneer ik mijn dev heb gevorderd.
Bedankt en een goed weekend.