Hello Sir, As suggested, i was working with Dancer2. I am getting an error below after submitting required id and time and mail id.

Please check below Web Form

APPID Time in Hours Recipient Email Submit Powered by Dancer2 0.301001

Please check below error.

Error 500 - Internal Server Error Runtime Error Can't call method "content" on an undefined value at C:/Strawberry/per +l/site/lib/REST/Client.pm line 423.

Please check below all my code snippet for query

<form id="f1" method="post" action="/"> <div> <label for="oktaprev.APPID">APPID</label> <input id="oktaprev.APPID" name="oktaprev.APPID"> <label for="date.time">Time in Hours</label> <input id="date.time" name="date.time"> <label for="Email.id">Recipient Email</label> <input id="Email.id" name="Email.id"> </div> <button>Submit</button> </form>

Please check below code snippet for result as suggested by you and i am wondering if its required for my purposes of not as i would like to generate the file after submitting the required details in web form and once the file generated , program sent an e-mail with generated file.

<p> Result: <% result %> </p>

Please check below Op.pm under /lib

#!/usr/bin/env perl package Op; use strict; no warnings; use Win32::Process; ##use Net::LDAP; use REST::Client; use JSON::Parse ':all'; use MIME::Base64; use Term::ReadKey; use Data::Dumper; use MIME::Lite; use Net::SMTP; use Spreadsheet::XLSX; use Spreadsheet::ParseXLSX; use Excel::Writer::XLSX; use Config::Properties; use Data::Dumper; use List::Compare; use Array::Compare; use Storable qw/freeze/; use Data::Validate::IP; use Data::Table::Excel; use Excel::Writer::XLSX::Chart; use Win32::OLE::Const; use Spreadsheet::WriteExcel::Utility qw( xl_range_formula ); use Win32::OLE; use POSIX 'strftime'; use POSIX qw(strftime); use DateTime; use DateTime::Format::Strptime; use Try::Tiny; use feature qw{ say }; open my $fh, '<', "C:/PERL/" . "config.properties" or die "unable to o +pen configuration file"; my $properties = Config::Properties->new(); $properties->load($fh); my $value = $properties->getProperty('dev.token'); my $baseurl = $properties->getProperty('dev.baseURL'); sub result { my ($args) = @_; my $appID = $args->{APPID}; my $datver = $args->{datetime}; my $email = $args->{Email}; my $date3 = strftime '%Y-%m-%d' , localtime(time() - $datver*60*60 +); my $date4 = strftime '%Y-%m-%d' , localtime(time() - 24*60*60); my $apiurllog = $baseurl ."/users/sys/logs?"; my $client = REST::Client->new(); my @responsetext; my @responsetextall; my $sortor = "filter=eventType+eq+%22"; my $filter = "all.auth.sso"; my @$responsalter; sub api_call { $client->addHeader('Authorization',"SSWS $value"); $client->addHeader('Accept','application/json'); $client->addHeader('Content-type','application/json'); $client->GET($_[0]); } my $date2 = "%22&since=" . $date3 . "T00%3A00%3A00.000-04%3A00&until=" + . $date4 . "T23%3A59%3A59.000-04%3A00"; my $urlstringlog = $apiurllog . $sortor . $filter . $target . $appID . + $date2; run_api_call($urlstringlog); @responsetext = parse_json ($client->responseContent()); push @responsetextall, @responsetext; for my $i (0..$#responsetextall) { for my $j (0..$#{$responsetextall[$i]}) { my $responseid = $responsetextall[$i][$j]{act}{UID}; my $responsdisp = $responsetextall[$i][$j]{act}{Name}; push @$responsalter, $responseid ; } } my $workbook = Excel::Writer::XLSX->new( $strExcelFilename ); my $format_bold = $workbook->add_format( bold => 1, size => 10, top=> +1, bottom=> 1 ); my $format2 = $workbook->add_format(%header1); my $worksheet = $workbook->add_worksheet('UserSSO-Data'); my $r = 1; my $r2 = 1; my $r3 = 1; foreach my $j (0..$#responsalter ) { $worksheet->write(0, 0, 'UserSSO-Total +-Users' ); $worksheet->write($r2, 0, $responsalter[$j]); $r2 += 1; } $workbook->close; print "Spreadsheet saved.\n"; ## Mail Functionality my $msg = MIME::Lite->new ( From => $from_address, To => $to_address, Subject => $subject, Type =>'multipart/mixed' ) or die "Error creating multipart container: $!\n"; $msg->attach ( Type => 'text/csv', Encoding => 'base64', Path => $my_file_zip, Filename => $your_file_zip, Disposition => 'attachment' ) or die "Error adding $your_file_zip: $!\n"; MIME::Lite->send('smtp', $mail_host, Timeout=>60,Auth=>'LOGIN',AuthUs +er=>$from_address,AuthPass=>$pass,Port => 25, Debug => 1); } __PACKAGE__

How can i achieve the goal for generating the report after submitting the details in web From.


In reply to Re^2: Need to know the process to implement perl script into web application server. by chandantul
in thread Need to know the process to implement perl script into web application server. by chandantul

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.