perlunity.de - PERL | JAVASCRIPT | PHP | MySQL | APACHE



#!/COMMUNITY

Members: 5374
davon online: 1
weitere User: 19
Click for quality!




12.02.2012 / 04:09

Community-Member werden   |   Paßwort vergessen   |   OnlineMonitor (1) Wer ist online ... OnlineMonitor starten !
     

 

Home


PERLscripts


PHPscripts


JAVAscripts


Hilfreiches


Links2www


Newscenter


Community


Interna




Community  »  Perl: Allgemeines Forum zur Themenübersicht Themensuche Themenansicht in Thread-Modus


BeitragNummer generieren
Seitenanfang
Hallo zusammen,
ich muss ein Perl-Skript schreiben, dass eine Nummer erstellt, die sich folgendermaßen zusammensetzt:
Systemdatum
Kundenummer
Bereich
Verantwortlicher
Laufende Nummer

Die Kundennummer, der Bereich und der Verantwortliche sind in einer Datenbank festgelegt.

Da ich keinerlei Erfahrung mir perl habe, würde es mir sehr helfen, wenn ihr mir ein paar Tipps geben könntet, wie ich mein Problem zu lösen könnte.

Falls es bereits einen Beitrag zu diesem Thema gibt, tut es mir leid die Frage nochmals wiederholt zu haben, zu meiner Verteidigung ist aber zu sagen, dass meine Suche in diversen Foren ergebnislos blieb.

Danke im Voraus
Mit freundlichen Grüßen
Chia

Datum: 02.10.2006-09:12

Beitragre: Nummer generieren
Seitenanfang
Wenn es Dir darum geht, wie man die Daten aus der Datenbank holt, koennte vielleicht http://perl.renee-baecker.de/perl_datenbanken.pdf weiterhelfen.

Was ist die Systemnummer?

Wie sollen die Zahlen "verbunden" werden?

my $kd_nr = 99999;
my $other_nr = 138622;

my $generated_nr = join('-',$kd_nr,$other_nr);

print $generated_nr;

Datum: 02.10.2006-10:33

Beitragre: Nummer generieren
Seitenanfang
Erst einmal danke für die schnelle Antwort.

Ich habe versucht, mit der Hilfe ein entsprechendes Skript zu schreiben. Leider sind dort noch einige Fehler vorhanden, die ich leider nicht ausmachen kann.

Es wäre sehr nett, wenn jemand drüber gucken könnte.


#! /usr/bin/perl

use strict;
use warnings;
use DBI;

# username
my $user = otrs;

# userpasswort
my $pass = some-pass;

# datenbankname
my $bd = otrs;

# DatabaseHost
my $host = localhost;

# $Driver oder DatabaseDNS
my $driver = "DBI:mysql:database=<OTRS_CONFIG_Database>;host=<OTRS_CONFIG_DatabaseHost>;";

my $dbh = DBI->connect($driver,$user,$pass) or die $DBI::errstr;

# Systemdatum
# Jahr
my $Year = now.getYear();
# Monat
my $Month = now.getMonth();
# Tag
my $Day = now.getDay();

# GKZ-Abfrage vorbereiten
my $GKZ = Select customer_id from customer_user;
my $GKZ_sth = $dhb->prepare($GKZ) or die $DBI::errstr;
# GKZ-Abfrage ausführen
$GKZ_sth->execute() or die $DBI::errstr;
# GKZ-Ergebnisse "abholen"
my @GKZ_Ergebnisse;
while (my @GKZ_row = $GKZ_sth-> fetchrow_array())
{
push (@GKZ_Ergebnisse, \@GKZ_row);
}

# Fachgebiet (Queue) -Abfrage vorbereiten
my $Queue = Select queue_id from queue;
my $Queue_sth = $dhb->prepare($Queue) or die $DBI::errstr;
# Fachgebiet (Queue) -Abfrage ausführen
$Queue_sth->execute() or die $DBI::errstr;
# Fachgebiet (Queue) -Ergebnisse "abholen"
my @Queue_Ergebnisse;
while (my @Queue_row = $Queue_sth-> fetchrow_array())
{
push (@Queue_Ergebnisse, \@Queue_row);
}

my $gernerated_nr = join('-',$Year,$Month,$Day,$GKZ,$Queue...)
print $generated_nr;

Danke im Voraus
Chia

Datum: 04.10.2006-11:00

Beitragre: Nummer generieren
Seitenanfang
Da fehlen ungefähr zwanzig Quotes für Strings. Z.B. beim Password, beim SQL-Statement

Was soll now.getYear() darstellen?

Die aktuellen Daten bekommst Du so:

my ($day,$month,$year) = (localtime(time))[3..5];
++$month;
$year += 1900;

print "Heute ist der $day.$month des $year. Jahres nach Christus"

Datum: 07.10.2006-19:17

Beitragre: Nummer generieren
Seitenanfang
da du auf die datenbank zugreifst, wuerde ich mir das datum und die laufende nummer ebenfalls aus der db herausholen (sysdate und nextval('sequenz_soundso')

Datum: 05.10.2006-20:59

Beitragre: Nummer generieren
Seitenanfang
Ich danke euch für die Antworten, die mir sehr geholfen haben, auch wenn ich das Skript aus internen Gründen nicht vollenden werde.

Viele Grüße
Chia

Datum: 10.10.2006-13:39

-






-
-